精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

无码人妻精品一区二区| 中文av一区二区三区| 欧美一级免费片| 首页亚洲欧美制服丝腿| 久久国产加勒比精品无码| 中文字幕 亚洲一区| 欧美日韩五区| 亚洲国产综合色| 日韩欧美精品一区二区| 国产福利免费视频| 日韩国产精品大片| 欧美高清视频在线播放| 蜜桃av乱码一区二区三区| 人人爱人人干婷婷丁香亚洲| 色婷婷综合久久久中文字幕| 一本色道久久88亚洲精品综合| 欧美一区,二区| 蜜桃视频一区二区三区在线观看| 高清一区二区三区四区五区| 呻吟揉丰满对白91乃国产区| 亚洲欧美电影| 懂色一区二区三区| 日韩精品欧美| 亚洲第一精品夜夜躁人人躁 | 天堂美国久久| 日韩电视剧免费观看网站| 婷婷中文字幕在线观看| 伊人久久国产| 亚洲国产va精品久久久不卡综合| 亚洲一区二区三区精品在线观看| 日韩a在线看| 粉嫩绯色av一区二区在线观看| 国产精品综合久久久| 四虎成人在线观看| 亚洲第一区色| 欧美高跟鞋交xxxxhd| 国产美女福利视频| 久久国产亚洲| 一区二区三区国产在线观看| 免费在线观看成年人视频| 免费福利视频一区| 亚洲缚视频在线观看| 特黄特色免费视频| y111111国产精品久久久| 欧美一区二区视频在线观看 | 亚洲高清免费观看高清完整版| 亚洲一级片网站| 91精品韩国| 色成年激情久久综合| 欧美日韩第二页| 韩国成人漫画| 色成人在线视频| 色七七在线观看| 久久亚洲精品爱爱| 欧美在线色视频| 中文字幕在线导航| 国产成人精品一区二区三区视频| 欧美天堂一区二区三区| 天天操,天天操| 国产激情欧美| 6080yy午夜一二三区久久| 国产三级生活片| 国产一区二区三区| 精品对白一区国产伦| 国产精品成人99一区无码 | 激情综合网av| 1区1区3区4区产品乱码芒果精品| 精品人妻一区二区三区麻豆91| 国产精品中文字幕日韩精品 | 国产在线日韩精品| 亚洲人高潮女人毛茸茸| ass极品国模人体欣赏| 日韩中字在线| 色综合天天综合网国产成人网| 欧美成人手机视频| 国产日产高清欧美一区二区三区| 欧美综合在线观看| 亚洲一区在线观| 国产不卡高清在线观看视频| 国产日韩一区欧美| 国产一二三在线观看| 欧美三级三级| 一区二区三区在线免费视频| 日本黄大片在线观看| 最近高清中文在线字幕在线观看1| 日韩欧美高清视频| 日本中文字幕精品—区二区| 一区二区网站| 亚洲欧美国产一本综合首页| 性欧美疯狂猛交69hd| 精品69视频一区二区三区Q| 日本成人精品在线| av中文在线观看| 久久综合色之久久综合| 一区二区三区四区视频在线观看| 久草在线新免费首页资源站| 色综合咪咪久久| 日韩不卡的av| 国产一区二区三区四区| 欧美国产亚洲精品久久久8v| 无码人妻黑人中文字幕| 国产 日韩 欧美大片| 日韩欧美视频一区二区| 后进极品白嫩翘臀在线播放| 在线观看日韩精品| 岛国精品资源网站| 2023国产精品久久久精品双| 热久久99这里有精品| 国产av无码专区亚洲a∨毛片| 久久精品一区二区| 国产在线xxxx| 美女视频一区| 亚洲人成网站777色婷婷| 黄色一级片在线| 欧美aaaaaa午夜精品| 精品日本一区二区三区在线观看| 日p在线观看| 色噜噜狠狠色综合中国 | 97精品电影院| 亚洲一区 在线播放| 日本肉肉一区| 亚洲美女自拍视频| 日本三级片在线观看| 国产综合成人久久大片91| 鲁丝片一区二区三区| 色爱综合区网| 91精品在线免费| 欧美福利在线视频| 日韩国产精品久久| 蜜桃精品久久久久久久免费影院| 久久一卡二卡| 日韩欧美国产高清| 成人免费毛片xxx| 男人的天堂久久精品| 欧美视频小说| sese综合| 亚洲欧美在线磁力| 黄色在线视频网址| 久久嫩草精品久久久精品一| 3d动漫一区二区三区| 国产欧美三级电影| 韩国福利视频一区| 日韩中文字幕免费观看| 五月天丁香久久| 你懂的在线观看网站| 亚洲激情av| 久久精品欧美| xxxxx性欧美特大| 亚洲欧洲第一视频| 中文字幕乱伦视频| 国产精品国产三级国产aⅴ原创| 久久久久久久片| 日韩亚洲一区在线| 国产精品视频公开费视频| www.视频在线.com| 欧美女孩性生活视频| 久久人妻无码aⅴ毛片a片app| 久久精品国产99久久6| 超碰免费在线公开| 中文无码日韩欧| 久久久噜噜噜久久久| 刘玥91精选国产在线观看| 欧美日韩国产色视频| av小说在线观看| 免费一级欧美片在线观看| 亚洲精品国产系列| 久久69av| 97人洗澡人人免费公开视频碰碰碰| 午夜福利一区二区三区| 欧美亚洲动漫精品| 一区二区成人免费视频| av成人动漫在线观看| 亚洲视频在线a| 中文字幕亚洲精品乱码| 韩国一区二区三区美女美女秀 | 亚洲一区二区免费看| 日本视频一区在线观看| 亚洲ww精品| 欧美劲爆第一页| 黄色视屏网站在线免费观看| 91精品欧美久久久久久动漫| 日本视频www| 国产农村妇女毛片精品久久麻豆 | xf在线a精品一区二区视频网站| 久久国产色av免费观看| 亚洲国产一区二区在线观看| 国产伦视频一区二区三区| 久久久久99精品| 视频精品导航| 尤物九九久久国产精品的分类| 97人妻精品一区二区三区动漫 | 一区二区国产精品视频| 国产手机视频在线| 丰满岳妇乱一区二区三区| 又嫩又硬又黄又爽的视频| 成人深夜福利app| 国产一二三四在线视频| 在线看片欧美| 在线观看欧美亚洲| 欧美黄色录像| 亚洲一区二区久久久久久久| 在线天堂资源www在线污| 久久九九国产精品怡红院| 免费一级毛片在线观看| 日韩女优电影在线观看| 国产男人搡女人免费视频| 亚洲影视在线观看| 三级黄色免费观看| 久久久久99精品国产片| 香蕉在线观看视频| 美洲天堂一区二卡三卡四卡视频 | 男女羞羞免费视频| 国产免费成人在线视频| 中文字幕免费高清视频| 国产美女精品人人做人人爽| 国产一区二区视频免费在线观看| 国产无码精品在线播放| 国产精品中文欧美| 欧美精品性生活| 欧美亚洲一级| a级免费在线观看| 久久精品影视| 亚洲自拍三区| 精品久久久久久久| 裸模一区二区三区免费| 成人三级av在线| 91免费人成网站在线观看18| 视频精品导航| 国产成人免费av| 老司机2019福利精品视频导航| 久久久久久久久中文字幕| 2024最新电影免费在线观看| 日韩中文字幕av| 国产亚洲依依| 国产一区二区激情| 国产粉嫩一区二区三区在线观看| 日韩av一区二区在线观看| 人妻精品一区二区三区| 精品免费国产一区二区三区四区| 国产av无码专区亚洲av麻豆| 欧美一区二区三区视频在线观看| 91亚洲精品国偷拍自产在线观看| 欧美性感一区二区三区| 中文字幕人妻丝袜乱一区三区 | 欧美激情伊人电影| 免费在线看污片| 欧美激情视频网址| heyzo在线| 57pao成人国产永久免费| 欧美激情护士| 国产z一区二区三区| 成人日韩在线观看| 国产精品久久视频| 成人全视频在线观看在线播放高清 | 日韩av在线资源| 丰满人妻熟女aⅴ一区| 精品国产一区二区三区四区四| 亚洲国产福利视频| 亚洲黄色在线看| 狠狠狠综合7777久夜色撩人| 国产亚洲精品一区二区| 丝袜美腿美女被狂躁在线观看| 久久激情视频免费观看| 亚洲小说区图片| 97成人精品区在线播放| 欧美aa视频| 成人美女av在线直播| 日本一区二区三区视频在线看| 福利视频一区二区三区| 伦理一区二区三区| 日韩和欧美的一区二区| 忘忧草精品久久久久久久高清| 国产亚洲精品久久久久久久| 国产精品久久久亚洲一区| 国产一二三四在线视频| 国产精品一二三区在线| 欧美性xxxx图片| 国产精品伦理在线| 国产亚洲色婷婷久久99精品| 一本大道av伊人久久综合| 91欧美日韩麻豆精品| 精品国免费一区二区三区| 猫咪在线永久网站| 欧美成人在线免费视频| 中文字幕资源网在线观看免费| 国产精品com| 亚洲国产视频二区| 欧美一区二区综合| 中文字幕亚洲精品乱码| 国产黄色特级片| 国产剧情一区在线| 国产熟妇搡bbbb搡bbbb| 一区二区三区在线不卡| 国产午夜无码视频在线观看| 日韩欧美精品三级| 高清福利在线观看| 久久久久久久久久久亚洲| 成人网ww555视频免费看| 国产高清精品一区| 久久中文字幕av一区二区不卡| 男女猛烈激情xx00免费视频| 极品尤物av久久免费看| 久久精品国产亚洲av麻豆| 夜夜嗨av一区二区三区四季av | 丝袜美腿亚洲一区二区图片| 日本美女久久久| 国产亚洲精品资源在线26u| 久久精品久久精品久久| 91传媒视频在线播放| 韩国av电影在线观看| 日韩中文字幕免费看| 日韩福利一区| 国产视频一区二区不卡| 欧美国产免费| 黄色小视频免费网站| 久久久人成影片一区二区三区在哪下载 | 免费久久精品| 精品丰满人妻无套内射| 激情六月婷婷综合| 影音先锋男人在线| 欧美日韩亚洲精品内裤| 亚洲精品无amm毛片| 久久久av网站| 欧美黄页免费| 亚洲精品乱码久久久久久蜜桃91 | 欧美做受高潮中文字幕| 亚洲人成网站色在线观看| 丰满人妻一区二区三区四区| 精品无人区太爽高潮在线播放 | 亚洲图片欧美色图| 97成人免费视频| 在线精品国产欧美| 日韩av首页| 日本视频精品一区| 奇米精品一区二区三区在线观看一 | 少妇高潮av久久久久久| 日韩成人小视频| 免费h视频在线观看| 狠狠色综合网站久久久久久久| 激情自拍一区| 日本天堂在线播放| 亚洲一级在线观看| 日韩一区免费视频| 91av国产在线| 自拍偷拍一区| 激情综合网俺也去| 欧美激情在线看| 亚洲网站免费观看| 日韩在线观看精品| 欧美经典一区| www.好吊操| 久久国产精品色av免费看| 久久久视频精品| 欧美wwwsss9999| 波多野结衣乳巨码无在线| av在线不卡电影| 亚洲国产成人无码av在线| 亚洲一区www| 超碰91在线观看| 欧美极品一区| 蜜桃一区二区三区四区| 手机在线免费看片| 欧美一级黄色大片| 9999在线视频| 蜜桃av久久久亚洲精品| 久久婷婷麻豆| 波多野结衣喷潮| 精品日韩av一区二区| 国产粉嫩在线观看| 日本一区二区三区视频免费看| 日韩电影一区二区三区四区| 三上悠亚在线观看视频| 精品国产伦一区二区三区观看方式 | avtt中文字幕| 欧美午夜精品在线| 在线观看麻豆蜜桃| 999热视频在线观看| 亚洲男女自偷自拍| 后入内射无码人妻一区| 精品国产伦一区二区三区观看体验 | 一片黄亚洲嫩模| 午夜视频免费看| 国产日韩精品入口| 亚洲三级影院| 青青青视频在线播放| 欧美精品一区二区三区很污很色的 | 欧美精品入口| 精品无码一区二区三区| 51精品久久久久久久蜜臀| 国产自产自拍视频在线观看| 亚洲欧美日韩精品在线| 成人午夜私人影院| 中文字幕人妻丝袜乱一区三区| 久久久久久美女| 成人羞羞网站| 久草视频福利在线| 6080yy午夜一二三区久久| 亚洲女同志freevdieo| 国产奶头好大揉着好爽视频| 91蝌蚪porny九色|