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