Qt5.10实现QQ截图功能代码分析

为了做出一个QQ截图功能的模块,参考了网上某位网友的代码。这里我们分析一下主要代码。
源码已经过测试运行,不懂的留言即可。
源码地址:Qtjietu20191216.zip:
1.首先我们一定会想到要对鼠标事件进行改写,包括点击,移动,释放,双击取消选区等功能。

//重写基类方法
  void keyPressEvent(QKeyEvent *event);
  void paintEvent(QPaintEvent *event);
  void mousePressEvent(QMouseEvent *event);
  void mouseReleaseEvent(QMouseEvent *event);  
  void mouseMoveEvent(QMouseEvent *event);
  void mouseDoubleClickEvent(QMouseEvent *event);
  void contextMenuEvent(QContextMenuEvent *event);

2.我们肯定需要一个背景,然后可以在这个背景控件上去画我们的截屏框,这里我们就清楚了,首先点击截图按钮,触发创建一个全屏的widget,背景设置成透明暗色的,然后根据鼠标点的移动去绘制一个矩形框框,作为选区,然后鼠标释放的时候,或者鼠标右键点击的时候,出现保存选区菜单,最后将选区保存为一张图片即可。

void fullScreenWidget::loadBackgroundPixmap(const QPixmap &bgPixmap)
{
  int width,height;
  width = QApplication::desktop()->size().width();
  height = QApplication::desktop()->size().height();

  loadBackgroundPixmap(bgPixmap,0,0,width,height);
}

vo
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章