精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

用Qt實現(xiàn)類似QQ截圖的工具

移動開發(fā)
以前我們介紹過在Symbian應(yīng)用程序Widget開發(fā)使用Qt加載和縮放圖片,今天我們來講講用Qt實現(xiàn)類似QQ截圖的工具。

以前我們介紹過在Symbian應(yīng)用程序Widget開發(fā)使用Qt加載和縮放圖片,今天我們來講講用Qt實現(xiàn)類似QQ截圖的工具。首先我們先講一下Qt Widget。

widget.cpp

  1. #include "widget.h"  
  2. #include "ui_widget.h"  
  3. #include <QtGui>  
  4.  
  5. Widget::Widget(QWidget *parent) :  
  6.     QWidget(parent),  
  7.     ui(new Ui::Widget)  
  8. {  
  9.     ui->setupUi(this);  
  10.     createWidgets();  
  11.     createConnects();  
  12.     createEventFilter();  
  13. }  
  14.  
  15. Widget::~Widget()  
  16. {  
  17.     delete ui;  
  18.  
  19.     delete quit;  
  20.     delete mini;  
  21.     delete restore;  
  22.     delete menu;  
  23.     delete trayIcon;  
  24.  
  25.     delete fullScreenLabel;  
  26.     delete shotScreenLabel;  
  27. }  
  28.  
  29. bool Widget::eventFilter(QObject *o, QEvent *e)  
  30. {  
  31.     if (o != fullScreenLabel)  
  32.     {  
  33.         return Widget::eventFilter(o, e);  
  34.     }  
  35.  
  36.     QMouseEvent *mouseEvent = static_cast<QMouseEvent*> (e);  

true 鼠標(biāo)左鍵按下且按鍵還未彈起.

  1. if ((mouseEvent->button() == Qt::LeftButton)  
  2.       && (mouseEvent->type() == QEvent::MouseButtonPress)) 

鼠標(biāo)左鍵標(biāo)志位按下

  1. leftMousePress = true

獲取鼠標(biāo)點

  1. origin = mouseEvent->pos();   
  2.       
  3.         if (!rubberBand)      
  4.         {     
  5.             rubberBand = new QRubberBand(QRubberBand::Rectangle, fullScreenLabel);    
  6.         }     
  7.       
  8.         rubberBand->setGeometry(QRect(origin,QSize()));   
  9.         rubberBand->show();   
  10.       
  11.         return true;      
  12.     }    

true 鼠標(biāo)左鍵按下并拖動

  1.     if ((mouseEvent->type() == QEvent::MouseMove)  
  2.         && (leftMousePress))  
  3.     {  
  4.         if (rubberBand)  
  5.         {  
  6.             rubberBand->setGeometry(QRect(origin, mouseEvent->pos()).normalized());  
  7.         }  
  8.  
  9.         return true;  
  10.     }  

鼠標(biāo)左鍵松開

  1. if ((mouseEvent->button() == Qt::LeftButton)  
  2.  
  3.        && (mouseEvent->type() == QEvent::MouseButtonRelease))  
  4.  
  5.    {  

鼠標(biāo)標(biāo)志位彈起

  1. leftMousePress = false;  
  2.    if (rubberBand)  
  3.       {  

獲取橡皮筋框的終止坐標(biāo)

  1. termination = mouseEvent->pos();  
  2.             QRect rect = QRect(origin, termination);  

根據(jù)橡皮筋框截取全屏上的信息,并將其放入shotScreenLabel

  1.             shotScreenLabel->setPixmap(fullScreenPixmap.grabWidget(fullScreenLabel,  
  2.                                                                    rect.x(),  
  3.                                                                    rect.y(),  
  4.                                                                    rect.width(),  
  5.                                                                    rect.height()));  

將shotScreenLabel的用戶區(qū)大小固定為所截圖片大小

  1.             shotScreenLabel->setPixmap(fullScreenPixmap.grabWidget(fullScreenLabel,  
  2.                                                                    rect.x(),  
  3.                                                                    rect.y(),  
  4.                                                                    rect.width(),  
  5.                                                                    rect.height()));  
  6.  
  7. shotScreenLabel->setFixedSize(rect.width(), rect.height());  
  8.             shotScreenLabel->show();  
  9.  
  10.             rubberBand->hide();  
  11.             fullScreenLabel->hide();  
  12.         }  
  13.  
  14.         return true;  
  15.     }  
  16.  
  17.     return false;  
  18. }  
  19.  
  20. /**  
  21.   descr:實例化控件  
  22. */ 
  23. void Widget::createWidgets()  
  24. {  

兩個QLabel的父控件不能為this,否則截圖信息會現(xiàn)在是主窗口中,無法正確顯示

  1.     fullScreenLabel = new QLabel();  
  2.     shotScreenLabel = new QLabel();  
  3.  
  4.     rubberBand = new QRubberBand(QRubberBand::Rectangle, fullScreenLabel);  
  5.  
  6.     leftMousePress = false

初始化托盤控件并組裝

  1.     trayIcon = new QSystemTrayIcon(QIcon(tr(":/images/heart.svg")), this);  
  2.     menu = new QMenu(this);  
  3.     restore = new QAction(tr("Restore"), this);  
  4.     mini = new QAction(tr("Mini"), this);  
  5.     quit = new QAction(tr("Quit"), this);  
  6.  
  7.     menu->addAction(restore);  
  8.     menu->addAction(mini);  
  9.     menu->addAction(quit);  
  10.     trayIcon->setContextMenu(menu); 

將托盤顯示

  1. trayIcon->show(); 

初始化托盤控件并組裝

  1.     savePixmap = new QAction(tr("save"), shotScreenLabel);  
  2.  
  3.     shotScreenLabel->addAction(savePixmap);  
  4.     shotScreenLabel->setContextMenuPolicy(Qt::ActionsContextMenu);  
  5. }  
  6.  
  7. void Widget::createConnects()  
  8. {  

主窗口信號槽

  1. connect(ui->pbtnShot, SIGNAL(clicked()), this, SLOT(grapWindowScreen()));  
  2. connect(ui->pbtnShotAndMin, SIGNAL(clicked()), this, SLOT(miniWindows()));  
  3. connect(ui->pbtnMin, SIGNAL(clicked()), this, SLOT(miniWindows()));  
  4.  
  5. connect(savePixmap, SIGNAL(triggered()), this, SLOT(saveShotPixmap()));  

主窗口信號槽

托盤信號槽

  1.     connect(restore, SIGNAL(triggered()), this, SLOT(restoreWindows()));  
  2.     connect(mini, SIGNAL(triggered()), this, SLOT(miniWindows()));  
  3.     connect(quit, SIGNAL(triggered()), this, SLOT(quitApplication()));  
  4.  
  5. }  
  6.  
  7. void Widget::createEventFilter()  
  8. {  
  9.     fullScreenLabel->installEventFilter(this);  
  10. }  
  11.  
  12. QString Widget::getSaveShotPixmap()  
  13. {  
  14.     return QFileDialog::getSaveFileName(shotScreenLabel,  
  15.                                         tr("Open Image"),  
  16.                                         ".",  
  17.                                         tr("Image Files(.JPG .PNG)"));  
  18. }  
  19.  
  20. void Widget::grapWindowScreen()  
  21. {  
  22.     if (!fullScreenLabel)  
  23.     {  
  24.         fullScreenLabel = new QLabel();  
  25.     }  

獲取全屏截圖fullScreenPixmap,并將其放入fullScreenLabel

  1. fullScreenPixmap = QPixmap::grabWindow(QApplication::desktop()->winId());  
  2. fullScreenLabel->setPixmap(fullScreenPixmap); 

label全屏顯示

  1.     fullScreenLabel->showFullScreen();  
  2. }  
  3.  
  4. void Widget::miniWindows()  
  5. {  
  6.     showMinimized();  
  7.     grapWindowScreen();  
  8. }  
  9.  
  10. void Widget::restoreWindows()  
  11. {  
  12.     showNormal();  
  13. }  
  14.  
  15. void Widget::quitApplication()  
  16. {  
  17.     qApp->quit();  
  18. }  
  19.  
  20. void Widget::saveShotPixmap()  
  21. {  
  22.     QString fileName = getSaveShotPixmap();  
  23.  
  24.     if (!fileName.isNull())  
  25.     {  
  26.         fullScreenPixmap.save(fileName);  
  27.     }  
  28.  
  29. }  


【編輯推薦】

  1. Qt 4使用MySQL的中文問題解決方法
  2. QML教程:構(gòu)建和安裝QtComponents
  3. QML教程:Qt-Quick六大開源組件
  4. QTreeWidget設(shè)計解決沒有拖動項問題
  5. 在Symbian應(yīng)用程序Widget開發(fā)使用Qt加載和縮放圖片

 

責(zé)任編輯:佚名
相關(guān)推薦

2023-02-06 09:42:51

GNOME截圖工具

2009-12-29 09:15:05

2017-09-01 15:42:00

MySQLOracledblink功能

2010-06-04 18:24:37

Linux uml工具

2011-03-18 19:37:38

Eventable接口QtWidget

2018-04-11 09:00:41

2015-07-20 15:24:44

Linux工具截圖

2022-07-27 10:39:27

Python打包工具

2019-05-20 14:21:34

QQ截圖微信截圖Windows截圖

2011-06-28 15:47:13

Qt 信號

2012-06-25 12:33:12

Java日志切割

2012-02-13 13:36:27

Java

2023-03-23 21:32:38

微軟Windows

2013-06-20 10:40:32

Objective-C實現(xiàn)截圖

2012-09-25 14:06:28

C#網(wǎng)絡(luò)協(xié)議

2021-02-23 09:50:42

PythonJSWeb SSH

2013-10-24 14:24:17

搜狗輸入法

2018-01-18 16:10:42

數(shù)據(jù)庫MySQLOracle

2011-06-15 14:38:01

QT 信號

2011-06-13 10:44:44

Qt Flash
點贊
收藏

51CTO技術(shù)棧公眾號

www在线观看免费视频| 成人毛片100部免费看| 欧美精品一二三四区| 精品国精品国产自在久国产应用| 亚洲精品888| 日韩一区二区三区视频| 日本大片免费看| 偷拍自拍在线视频| 欧美综合视频| 尤物在线观看一区| 99视频国产精品免费观看| 亚洲av无码一区二区三区观看| 最近在线中文字幕| 国产精品美女久久久久久久久久久| 亚洲综合小说区| 欧美a级片免费看| 精品视频在线你懂得| 欧美色大人视频| 久久久av水蜜桃| 国产又粗又猛又色又| 日韩午夜在线电影| 久久久999精品| 国产精品无码久久久久一区二区| 国产蜜臀av在线播放| 久久久噜噜噜久久中文字幕色伊伊| 国产日韩在线视频| 亚洲GV成人无码久久精品| 欧美精品综合| 在线综合+亚洲+欧美中文字幕| 日韩中文字幕在线免费| 国产调教视频在线观看| 国产亚洲一区二区在线观看| 2023亚洲男人天堂| 免费看的黄色录像| 亚洲精品蜜桃乱晃| 欧美v日韩v国产v| 污污的网站免费| 另类中文字幕国产精品| 欧美日韩一区二区免费在线观看| 日本一道在线观看| 天堂а√在线资源在线| 久久先锋影音av鲁色资源网| 精品国产乱码久久久久久郑州公司| 国产强伦人妻毛片| 91久久电影| 在线播放中文一区| 手机在线成人免费视频| 色在线中文字幕| 精品女厕一区二区三区| 无码粉嫩虎白一线天在线观看| 宅男在线观看免费高清网站| 自拍偷拍国产亚洲| 91久久久一线二线三线品牌| 亚洲熟妇av乱码在线观看| 三级影片在线观看欧美日韩一区二区| 国产香蕉一区二区三区在线视频| 99国产在线观看| 无码视频一区二区三区| 香蕉久久久久久久av网站| 性色av一区二区三区在线观看 | 欧美色网在线| 在线视频你懂得一区| 午夜激情福利在线| 精品无人乱码一区二区三区| 精品视频1区2区3区| 性生活免费在线观看| 久久69成人| 欧美浪妇xxxx高跟鞋交| 在线播放黄色av| 91精品国产乱码久久久竹菊| 精品99一区二区| 国产主播在线看| 涩涩视频网站在线观看| 欧美性xxxx极品hd欧美风情| 熟女少妇精品一区二区| 成人在线观看免费播放| 宅男在线国产精品| 美女露出粉嫩尿囗让男人桶| 你懂的在线观看一区二区| 日韩第一页在线| 91插插插插插插插插| 成人精品国产亚洲| 欧美亚日韩国产aⅴ精品中极品| 182午夜在线观看| 色悠久久久久综合先锋影音下载| 亚洲国产精品va| 男人天堂av电影| 香蕉国产精品| 性色av一区二区三区免费| 亚洲日本视频在线观看| 另类人妖一区二区av| 亚洲综合日韩在线| 婷婷亚洲一区二区三区| 欧美激情一区二区三区在线| 精品一区二区成人免费视频 | 好男人www在线视频| 久久高清国产| 国产欧美在线视频| 成人久久久精品国产乱码一区二区| 91视视频在线观看入口直接观看www | 色综合久久久888| wwwwww国产| 国产一区二区三区免费| 欧美精品人人做人人爱视频| 精品麻豆一区二区三区| 天天操天天色综合| 久久久久久久久久一区二区| 国内精品国产成人国产三级粉色 | 超碰porn在线| 色综合激情久久| 一卡二卡三卡四卡五卡| 国产精品中文字幕亚洲欧美| 欧美激情久久久久久| 无码久久精品国产亚洲av影片| 亚洲第一毛片| 国产精品亚洲第一区| 欧美熟妇另类久久久久久不卡 | 日韩欧美视频一区二区三区四区| 午夜dj在线观看高清视频完整版| 欧美亚洲一区二区三区四区| 国产极品一区二区| 一区二区在线| 国产精品久久久久久久久久久久 | 色婷婷综合久久久久| 自拍偷拍欧美亚洲| 国产精品亚洲一区二区三区在线| 日韩亚洲视频在线| 中文在线аv在线| 亚洲成人1234| 国产亚洲精久久久久久无码77777| 秋霞影院一区二区| 热舞福利精品大尺度视频| 天堂中文网在线| 一区二区三区在线高清| 污网站在线免费| 精品国产一区二区三区久久久樱花| 国内成人精品一区| 亚洲精品成av人片天堂无码| 国产成人精品亚洲777人妖| 亚洲成人午夜在线| 五月激情久久| 亚洲亚裔videos黑人hd| 天堂网中文字幕| 91色九色蝌蚪| 久久免费视频3| 欧洲亚洲视频| 91精品国产精品| 天天综合网在线| 亚洲成av人片在线| 欧美精品无码一区二区三区| 天堂俺去俺来也www久久婷婷 | 成人av色网站| 日韩在线观看你懂的| 中文字幕永久在线视频| 国产精品天干天干在线综合| 青春草在线视频免费观看| 日韩和的一区二在线| 亚洲深夜福利网站| 亚洲性猛交富婆| 国产精品乱码久久久久久| 黄大色黄女片18第一次| 91视频综合| 亚洲最大福利网| 免费在线观看的电影网站| 精品剧情v国产在线观看在线| 国产在线成人精品午夜| 日韩成人一级大片| 亚洲欧洲一区二区在线观看| 偷拍自拍亚洲| 久精品免费视频| 人人妻人人澡人人爽久久av| 午夜成人免费视频| 尤物视频最新网址| 久久69国产一区二区蜜臀| 国产一二三四五| 超碰成人在线观看| 欧美最顶级的aⅴ艳星| 北条麻妃在线| 日韩免费电影网站| 欧美亚洲精品天堂| 国产成人免费视频网站高清观看视频| 成人午夜视频免费观看| 日韩精品亚洲aⅴ在线影院| 国产精品96久久久久久| 黄色视屏免费在线观看| 亚洲国产精品系列| 这里只有精品免费视频| 一区二区三区四区蜜桃| 亚洲午夜福利在线观看| 精品一区二区三区久久| 日韩日韩日韩日韩日韩| blacked蜜桃精品一区| 亚洲va欧美va在线观看| 亚洲最大网站| 久久福利网址导航| 免费在线视频一级不卡| 91精品国产91热久久久做人人| 国产午夜精品无码| 国产精品家庭影院| 在线免费观看污视频| 久久精品国产**网站演员| 久草视频国产在线| 色天天久久综合婷婷女18| 国产一级精品aaaaa看| 狠狠久久综合| 91av视频在线观看| av黄在线观看| 在线观看视频99| 手机看片福利永久| 91精品国产免费| 亚洲精品久久久久久久蜜桃| 亚洲综合一区二区三区| 亚洲热在线视频| 久久香蕉精品| 国产免费黄色一级片| 911久久香蕉国产线看观看| 蜜桃视频在线观看成人| jizz性欧美23| 亚洲在线视频观看| 国产亚洲精彩久久| 日本国产一区二区三区| 丁香花在线影院| 美女久久久久久久久久久| 国产女人在线视频| 国产视频精品免费播放| 日韩一级免费视频| 日韩女优毛片在线| 国产女人18毛片18精品| 欧美日韩一区三区| 久久久久久无码精品大片| 欧美视频免费在线观看| 精品午夜福利视频| 一区二区三区蜜桃| 欧美成人精品欧美一级私黄| 国产精品国产三级国产a| 天天躁日日躁aaaa视频| 久久免费偷拍视频| 加勒比精品视频| fc2成人免费人成在线观看播放 | 国产乱子伦精品视频| 99久久99视频只有精品| 亚洲高清乱码| 青青草国产免费一区二区下载| 日本视频一区二区不卡| 九热爱视频精品视频| 欧美男人的天堂| 综合伊思人在钱三区| 欧美日韩一区在线视频| 国产一区二区精品福利地址| 日本黑人久久| 成人av国产| 在线看视频不卡| 久久久久国产精品| 8x8x华人在线| 欧美久久一级| 久艹视频在线免费观看| 日韩午夜精品| 日韩中文字幕免费在线| 日本aⅴ亚洲精品中文乱码| 欧美性猛交xxx乱久交| 蜜臀va亚洲va欧美va天堂| 色天使在线观看| 国产剧情一区二区| 日韩www视频| 久久精品无码一区二区三区| 国产精品av久久久久久无| 国产精品久久夜| 全程偷拍露脸中年夫妇| 亚洲成人黄色影院| 特黄视频免费看| 欧美色综合网站| 国产草草影院ccyycom| 欧美精品一区二区三区蜜桃视频| 亚洲aaa在线观看| 国产亚洲一区二区在线| caoporn免费在线| 97在线视频免费播放| 国产精品亚洲d| 亚洲xxxx在线| 欧美美女黄色| 在线视频精品一区| 亚洲一级一区| 精品少妇无遮挡毛片| 国产一区二区福利视频| 亚洲精品在线视频免费观看| 中文字幕av一区 二区| 成年人av电影| 91久久精品一区二区二区| 国产精品丝袜黑色高跟鞋| 亚洲精品av在线| 在线观看a视频| 国内精品小视频在线观看| 亚洲电影有码| 国产精品成人一区二区三区| av影片在线一区| 丰满的少妇愉情hd高清果冻传媒 | 波多野吉衣在线视频| 久久久亚洲欧洲日产国码αv| 中文字幕电影av| 色哟哟精品一区| 亚洲精品成av人片天堂无码| 在线看日韩av| 黄色aa久久| 亚洲最大的成人网| 欧洲激情视频| 国产精品无码av在线播放| 韩国v欧美v亚洲v日本v| 伊人网在线视频观看| 亚洲中国最大av网站| 成人黄色片在线观看| 亚洲电影天堂av | 精品国产乱码久久久久久蜜坠欲下 | 人妻巨大乳一二三区| 国产欧美日韩在线视频| 永久免费看片在线播放| 欧美一区二区三区视频在线观看| 久久久久久女乱国产| 亚州国产精品久久久| 大胆国模一区二区三区| 日韩电影免费观看高清完整| 亚洲精品日韩久久| 无码国产精品久久一区免费| 日本一区二区久久| 久草视频一区二区| 亚洲国产高潮在线观看| 色综合999| 亚洲一区国产精品| 99久久.com| 久久国产这里只有精品| 国产喂奶挤奶一区二区三区| 91香蕉在线视频| 亚洲国内精品视频| www.51av欧美视频| 国产一区二区免费在线观看| 亚洲视频狠狠| 黄色av电影网站| 夜夜夜精品看看| 亚洲国产精品国自产拍久久| 欧美成人午夜免费视在线看片| 成人污版视频| 18视频在线观看娇喘| 精品一区二区三区久久久| 顶级黑人搡bbw搡bbbb搡| 欧美精品久久一区| 免费网站黄在线观看| 成人在线中文字幕| 一区二区三区四区电影| 欧美xxxxxbbbbb| 一区二区三区日韩精品视频| 精品国产区一区二| 欧美激情精品久久久久久| 在线精品视频一区| 青青草成人免费在线视频| 97久久超碰精品国产| 久久久久久久久久久久久av| 亚洲欧美日韩在线一区| 日本欧美一区| 在线视频不卡一区二区三区| 国产福利精品导航| 日韩男人的天堂| 亚洲精品一区二区三区婷婷月| 三上悠亚一区二区| 国产色视频一区| 久久精品免费一区二区三区| 宇都宫紫苑在线播放| 一级中文字幕一区二区| 噜噜噜久久,亚洲精品国产品| 91成人在线播放| 欧美日韩一二三四| 亚欧精品在线视频| 亚洲成人精品一区| 超碰在线影院| 91精品久久香蕉国产线看观看| 亚洲高清久久| 欧美 日韩 国产 成人 在线观看| 欧美日韩成人综合天天影院| 欧洲成人综合网| 免费99视频| 国产在线精品一区二区夜色 | 国产精品资源| 中文字幕第24页| 日韩欧美第一区| 欧美第一视频| 9l视频自拍9l视频自拍| aaa欧美日韩| 亚洲图片欧美在线| 久久久久中文字幕2018| japanese国产精品| 国产精品成人免费一区久久羞羞| 色先锋资源久久综合| h片在线免费| 欧美日韩一区二区三区在线观看免| 久久成人免费网| 在线观看日韩中文字幕| 久热在线中文字幕色999舞| 欧美调教视频| 香蕉视频xxxx| 欧美综合在线视频| caoporn-草棚在线视频最| 亚洲三区四区|