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

詳解兩個自制Qt Widget應用案例實現

移動開發
Qt Widget應用案例實現是本文要介紹的內容,文章中主要講解了自制的兩個Qt Widget應用,具體內容的實現來看本文詳解。

Qt Widget應用案例實現是本文要介紹的內容,文章中主要講解了自制的兩個Qt Widget應用,具體內容的實現來看本文詳解。Qt自帶的Widget不大夠用了,于是和他一起做了兩個。一個是圖片按鈕。這是一個基于QAbstractButton的按鈕,按鈕的實體是圖片,coyotte508實現的時候忽略了按鈕被按下時的效果,我給他完善了一下。

  1. class QImageButtonP : public QAbstractButton   
  2. {  
  3.     Q_OBJECT  
  4. public:  
  5.     QImageButtonP(const QString &normal, const QString &hovered, const QString &pressed, const QString &checked ="");  
  6.     QSize sizeHint() const;  
  7.     QSize minimumSizeHint() const;  
  8.     QSize maximumSize() const;  
  9.  
  10.     void changePics(const QString &normal, const QString &hovered, const QString &pressed, const QString &checked = "");  
  11. protected:  
  12.     void paintEvent(QPaintEvent *e);  
  13.     void mouseMoveEvent(QMouseEvent *e);  
  14.     void mousePressEvent(QMouseEvent *e);  
  15.     void mouseReleaseEvent(QMouseEvent *e);  
  16. private:  
  17.     QPixmap myPic, myHoveredPic, myCheckedPic, myPressedPic;  
  18.     int lastUnderMouse; // last mouse pos recorded  
  19.     bool bpressed;  
  20.  
  21.     enum State {  
  22.         Normal,  
  23.         Hovered,  
  24.         Checked,  
  25.         Pressed  
  26.     };  
  27.     int lastState;  
  28. };  
  29.  
  30.  
  31. QImageButtonP::QImageButtonP(const QString &normal, const QString &hovered, const QString &pressed, const QString &checked)   
  32.             : myPic(normal), myHoveredPic(hovered), myPressedPic(pressed), lastUnderMouse(-1), bpressed(false)  
  33. {  
  34.     setFixedSize(myPic.size());  
  35. #if defined(WIN32) || defined(WIN64)  
  36.     setMask(::mask(myPic));  
  37. #endif  
  38.     lastState = Normal;  
  39.  
  40.     /* Both are necessary for some styles */  
  41.     setMouseTracking(true);  
  42.     setAttribute(Qt::WA_Hover, true);  
  43.  
  44.     if (checked != "")  
  45.         myCheckedPic = QPixmap(checked);  
  46. }  
  47.  
  48. void QImageButtonP::changePics(const QString &normal, const QString &hovered,const QString &pressed, const QString &checked)  
  49. {  
  50.     myPic = QPixmap(normal);  
  51.     myHoveredPic = QPixmap(hovered);  
  52.     myPressedPic = QPixmap(pressed);  
  53.     if (checked != "")  
  54.         myCheckedPic = QPixmap(checked);  
  55.  
  56. #if defined(WIN32) || defined(WIN64)  
  57.     setMask(lastState == Checked ? ::mask(myCheckedPic) : (lastState == Normal ? ::mask(myPic) : 
  58. (lastState == Pressed ? ::mask(myPressedPic) : ::mask(myHoveredPic))));  
  59. #endif  
  60.  
  61.     update();  
  62. }  
  63.  
  64. void QImageButtonP::mousePressEvent(QMouseEvent *e)  
  65. {  
  66.     bpressed = true;  
  67.     QAbstractButton::mousePressEvent(e);  
  68. }  
  69.  
  70. void QImageButtonP::mouseReleaseEvent(QMouseEvent *e)  
  71. {  
  72.     bpressed = false;  
  73.     QAbstractButton::mouseReleaseEvent(e);  
  74. }  
  75.  
  76. QSize QImageButtonP::sizeHint() const  
  77. {  
  78.     return myPic.size();  
  79. }  
  80.  
  81. QSize QImageButtonP::minimumSizeHint() const  
  82. {  
  83.     return sizeHint();  
  84. }  
  85.  
  86. QSize QImageButtonP::maximumSize() const  
  87. {  
  88.     return sizeHint();  
  89. }  
  90.  
  91. void QImageButtonP::paintEvent(QPaintEvent *e)  
  92. {  
  93.     QPainter painter(this);  
  94.  
  95.     int newState;  
  96.     if ((this->isChecked()) && !myCheckedPic.isNull()) {  
  97.         newState = Checked;  
  98.         painter.drawPixmap(e->rect(), myCheckedPic, e->rect());  
  99.     }else if(this->isDown () && !myPressedPic.isNull()) {  
  100.         newState = Pressed;  
  101.         painter.drawPixmap(e->rect(), myPressedPic, e->rect());  
  102.     }else {  
  103.         if (!underMouse()) {  
  104.             newState = Normal;  
  105.             painter.drawPixmap(e->rect(), myPic, e->rect());  
  106.         }  
  107.         else {  
  108.             newState = Hovered;  
  109.             painter.drawPixmap(e->rect(), myHoveredPic, e->rect());  
  110.         }  
  111.     }  
  112.  
  113.     if (newState != lastState) {  
  114.         lastState = newState;  
  115. #if defined(WIN32) || defined(WIN64)  
  116.         setMask(lastState == Checked ? ::mask(myCheckedPic) : (lastState == Normal ? ::mask(myPic) : 
  117. (lastState == Pressed ? ::mask(myPressedPic) : ::mask(myHoveredPic))));  
  118. #endif  
  119.     }  
  120.  
  121.     lastUnderMouse = underMouse();  
  122. }  
  123.  
  124. void QImageButtonP::mouseMoveEvent(QMouseEvent *)  
  125. {  
  126.     if (int(underMouse()) == lastUnderMouse)  
  127.         return;  
  128.     update();  

另一個是IRC聊天輸入框模式的一個輸入框,輸入框對光標-上和光標-下兩個鍵盤輸入產生反應,能夠回到之前輸入的內容或者返回當前內容。

  1. class QIRCLineEdit : public QLineEdit   
  2. {  
  3.     Q_OBJECT  
  4. public:  
  5.     QIRCLineEdit();  
  6. private:  
  7.     void keyPressEvent(QKeyEvent *);  
  8.     QList<QString> m_Inputlist1;//Stores the inputed strings,up list.  
  9.     QList<QString> m_Inputlist2;//Stores the inputed strings,down list.  
  10.     //QString m_Currentline;//Stores a copy of the current text in the LineEdit.  
  11. public slots:  
  12.     void myTextEdited();  
  13.     void myclear();  
  14. };  
  15.  
  16.  
  17. QIRCLineEdit::QIRCLineEdit()   
  18. {  
  19.     connect(this,SIGNAL(textEdited(QString)),this,SLOT(myTextEdited()));  
  20. }  
  21.  
  22. void QIRCLineEdit::keyPressEvent(QKeyEvent *e)  
  23. {  
  24.     if(e->key() == Qt::Key_Up) {  
  25.         if(text()==""){  
  26.             if(m_Inputlist1.empty()){  
  27.  
  28.             }else{  
  29.                 setText(m_Inputlist1.last());  
  30.                 m_Inputlist1.removeLast();  
  31.             }  
  32.         }else if(text()!=""){  
  33.             m_Inputlist2.append(text());  
  34.             if(m_Inputlist1.empty()){  
  35.                 clear();  
  36.             }else{  
  37.                 setText(m_Inputlist1.last());  
  38.                 m_Inputlist1.removeLast();  
  39.             }  
  40.         }  
  41.     }else if(e->key() == Qt::Key_Down) {  
  42.         if(text()==""){  
  43.             if(m_Inputlist2.empty()){  
  44.  
  45.             }else{  
  46.                 setText(m_Inputlist2.first());  
  47.                 m_Inputlist2.removeFirst();  
  48.             }  
  49.         }else if(text()!=""){  
  50.             if(m_Inputlist2.empty()){  
  51.                 m_Inputlist1.append(text());  
  52.                 clear();  
  53.             }else{  
  54.                 m_Inputlist1.append(text());  
  55.                 setText(m_Inputlist2.first());  
  56.                 m_Inputlist2.removeFirst();  
  57.             }  
  58.         }  
  59.     }else{  
  60.         QLineEdit::keyPressEvent(e);  
  61.     }  
  62.  
  63. }  
  64. void QIRCLineEdit::myTextEdited()  
  65. {  
  66.     //if(!m_Inputlist2.empty()) m_Inputlist1.append(m_Currentline);  
  67.     m_Inputlist2.clear();  
  68. }  
  69.  
  70. void QIRCLineEdit::myclear()  
  71. {  
  72.     if(text()!=""){  
  73.         m_Inputlist1.append(text());  
  74.     }  
  75.     QLineEdit::clear();  

小結:詳解兩個自制Qt Widget應用案例實現的內容介紹完了,希望通過Qt Widget應用內容的學習能對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-09-07 16:28:46

QT WidgetQWidget

2011-09-09 17:59:26

QT Widget

2011-09-07 16:36:00

Qt Widget

2011-09-01 14:04:45

QT Webkit插件

2011-09-08 13:11:07

Android Wid實例

2011-09-09 19:05:28

Widget

2009-07-15 18:29:22

Jython應用

2011-06-20 16:38:33

Qt QWidget Qt4.5

2011-09-06 10:46:19

QT播放器

2010-02-25 16:45:13

WCF應用技巧

2011-09-07 14:20:42

Android Wid組件

2011-09-07 16:24:10

Qt Widget

2016-03-31 11:28:21

imageView圖片輪播

2010-07-17 00:50:12

batch Telne

2011-09-08 10:46:12

Widget

2011-09-08 11:43:32

GTK Widget

2011-09-09 10:19:13

2010-04-20 15:09:05

負載均衡

2013-06-20 09:35:18

Instagramvine短視頻應用

2011-08-16 15:36:47

iPhone應用測試
點贊
收藏

51CTO技術棧公眾號

色婷婷综合久久久| 九九热在线视频观看这里只有精品| 久久久久免费| 国产一区二区三区视频在线观看| 邪恶网站在线观看| 丝袜国产在线| 久久蜜臀中文字幕| 91在线视频免费| 国产午夜在线播放| 日韩国产大片| 午夜一区二区三区视频| 成人黄色av网站| 日本一区二区欧美| 91精品久久久久久综合五月天 | 日韩久久久久久久| 国产三级视频在线播放| 精品一区二区三| 欧美精品日韩综合在线| www.中文字幕在线| 91高清在线观看视频| 美女视频免费一区| 亚洲一区二区国产| 亚洲精品久久一区二区三区777| 亚洲播播91| 亚洲午夜一区二区三区| 亚洲a∨日韩av高清在线观看| 欧美日韩综合在线观看| 中文字幕av亚洲精品一部二部| 亚洲欧美日韩视频一区| 美女扒开腿免费视频| 日韩三级成人| 欧美在线观看视频在线| 日本精品免费在线观看| 九色91在线| 亚洲欧美色图小说| 99r国产精品视频| 中文字幕日韩经典| 亚洲一本二本| 中文字幕9999| 亚洲AV无码国产成人久久| 国产图片一区| 精品欧美一区二区在线观看| 国产精品igao网网址不卡| 99热播精品免费| 色狠狠一区二区三区香蕉| 欧美日韩成人免费视频| 欧美男男激情freegay| 成人自拍视频在线观看| y111111国产精品久久婷婷| 国产精品乱码久久久| 麻豆精品在线视频| 九九九久久国产免费| 人妻久久一区二区| 一本精品一区二区三区| 美女视频黄免费的亚洲男人天堂| 国产精品精品软件男同| 99久久精品国产亚洲精品| 日韩资源在线观看| 久草手机视频在线观看| 99精品全国免费观看视频软件| 中文字幕日韩在线视频| 女人裸体性做爰全过| 欧美丰满日韩| 久久精品这里热有精品| 欧美成人片在线观看| 欧美体内she精视频在线观看| 欧美极品少妇xxxxⅹ裸体艺术| 久久久精品国产sm调教网站| 99国产一区| 国产精品1234| 波多野结衣视频免费观看| 日韩电影免费一区| 成人h视频在线| 精品国自产在线观看| 日韩午夜在线电影| 1769国内精品视频在线播放| 成人av网站在线播放| 麻豆91在线观看| 99re视频在线| 污污视频在线免费看| 91免费在线看| 一区精品视频| 操喷在线视频| 欧美影院精品一区| 日本人dh亚洲人ⅹxx| 亚洲成人人体| 欧美片网站yy| 亚洲av无码一区东京热久久| 久久av资源| 米奇精品一区二区三区在线观看| 日韩激情在线播放| 奇米精品一区二区三区四区| 91传媒视频免费| 邻家有女韩剧在线观看国语| 18欧美亚洲精品| 91成人在线观看喷潮教学| 成人做爰免费视频免费看| 欧美成人午夜电影| 精品人妻无码一区| 一区二区视频欧美| 国产精品夜间视频香蕉| 日韩中文字幕观看| 亚洲欧洲日韩综合一区二区| 极品美女扒开粉嫩小泬| 欧美一区=区三区| 日韩福利视频在线观看| 一二三区视频在线观看| 伊人久久大香线蕉| 亚洲国产精品yw在线观看| 亚洲精品国产精品国自产网站| 好看的av在线不卡观看| 国产在线视频欧美| 亚洲色图 校园春色| 亚洲日韩欧美一区二区在线| 免费日韩视频在线观看| 免费观看欧美大片| 日韩精品一区国产麻豆| 国产黄色大片免费看| 日韩视频一区| 999热视频| 日本在线免费| 色婷婷av一区二区三区软件| a级片在线观看视频| 亚洲精品二区三区| 国产精品久久久久久久久久久新郎 | 国产精品久久久久久久免费大片 | 国产精品第72页| 久久精品av麻豆的观看方式| 麻豆精品传媒视频| 色哟哟在线观看| 一区二区三区在线观看视频| 免费一区二区三区在线观看| 亚洲人成网www| 性欧美亚洲xxxx乳在线观看| 亚洲av无码一区二区三区dv| 中文字幕一区二区三区蜜月| 亚洲性生活网站| 神马电影久久| 国产精品成人观看视频国产奇米| 亚洲av成人无码网天堂| 亚洲综合色噜噜狠狠| 国产探花在线观看视频| 久久久久久久久久久9不雅视频 | 少妇激情综合网| 国产情侣免费视频| 国产欧美一区二区在线| 亚洲一区二区三区精品视频| av日韩国产| 精品粉嫩aⅴ一区二区三区四区| 在线免费看黄色片| 国内精品99| 激情伦成人综合小说| av2020不卡| 日韩精品中文字幕久久臀| 69视频免费在线观看| 久久免费视频一区| 婷婷丁香激情网| 日韩欧美高清一区二区三区| 久久亚洲电影天堂| 午夜精品在线播放| 亚洲福利一区二区| 久久性爱视频网站| 国产精品毛片| 天堂资源在线亚洲视频| 欧美三级电影网址| 最近中文字幕mv在线一区二区三区四区| 这里只有精品999| 亚洲视频一区二区在线观看| 久久久久亚洲av无码网站| 亚洲精品影视| 国产有码在线一区二区视频| 91激情在线| 欧美大片顶级少妇| 亚洲精品午夜久久久久久久| 久久综合九色欧美综合狠狠 | 老司机精品视频导航| 日韩av一级大片| 91精品网站在线观看| 精品自在线视频| 完全免费av在线播放| 国内外成人免费激情在线视频网站| 日本xxxx人| 日韩欧美在线观看| av最新在线观看| 成人免费毛片aaaaa**| 91av在线免费播放| 91精品91| 欧美性bbwbbwbbwhd| 成人影院网站ww555久久精品| 色综合久久悠悠| 岛国最新视频免费在线观看| 91精品婷婷国产综合久久性色| 亚洲国产美女久久久久| 自拍偷拍一区二区三区| 日本a人精品| 色偷偷91综合久久噜噜| 亚洲产国偷v产偷v自拍涩爱| 91精品办公室少妇高潮对白| www.超碰在线观看| 26uuu亚洲综合色| 99精品视频国产| 中文在线一区| 国产一级片91| 欧美中文字幕一区二区| 国产精品视频免费一区二区三区| 蜜桃成人精品| 日韩中文在线中文网在线观看| 丰满岳乱妇国产精品一区| 欧美在线免费观看亚洲| 亚洲人视频在线| 亚洲三级毛片| 日本特级黄色大片| 亚洲瘦老头同性70tv| 69堂成人精品视频免费| 福利视频一区| 欧美在线视频观看免费网站| 伊人手机在线| 中文字幕亚洲欧美日韩2019| 人操人视频在线观看| 精品美女在线播放| 国产精品毛片一区二区在线看舒淇| 懂色aⅴ精品一区二区三区蜜月| 亚洲色偷偷色噜噜狠狠99网| 狠狠色丁香婷综合久久| 精品久久久久久无码国产| 9久re热视频在线精品| av 日韩 人妻 黑人 综合 无码| 欧美精品一区二区三区中文字幕 | 狼人天天伊人久久| 亚洲iv一区二区三区| 成人在线观看免费播放| 欧美洲成人男女午夜视频| 青春草在线免费视频| 久久综合免费视频| 日本三级视频在线播放| 亚洲色图第一页| 日韩精品视频无播放器在线看| 亚洲精品在线免费观看视频| 精品人妻一区二区三区日产乱码 | 欧美在线欧美在线| av剧情在线观看| 久久久久免费视频| 国产探花视频在线观看| 欧美日韩成人网| a免费在线观看| 欧美成人高清视频| caoporn97在线视频| 日韩一区二区在线视频| 98在线视频| 色噜噜亚洲精品中文字幕| 一广人看www在线观看免费视频| 在线观看亚洲区| 91成品人影院| 欧美男男青年gay1069videost| 亚洲高清视频免费观看| 在线精品视频小说1| 欧美另类高清videos的特点| 欧美伊人久久久久久久久影院| 日韩乱码一区二区三区| 欧美日韩一二区| 国产免费无遮挡| 精品国产乱码久久久久久图片 | 成人av网站免费| 波多野结衣影院| 麻豆高清免费国产一区| 天天干天天玩天天操| 麻豆专区一区二区三区四区五区| 午夜两性免费视频| 国产在线精品一区二区三区不卡| 日韩欧美中文在线视频| www.在线欧美| a级片在线观看| 一区精品在线播放| 久久丫精品久久丫| 欧美午夜久久久| 在线观看不卡的av| 欧美电视剧在线看免费| 亚洲 国产 欧美 日韩| 亚洲片av在线| 国产在线观看a视频| 国内精品久久久久久久| 国产综合色区在线观看| 亚洲一区精品电影| 日韩理论电影中文字幕| 亚洲砖区区免费| 亚洲国产裸拍裸体视频在线观看乱了中文 | 黄色日韩在线| 国产一区亚洲二区三区| 韩国午夜理伦三级不卡影院| 久久性爱视频网站| 一区在线中文字幕| 好看的av在线| 69av一区二区三区| 天天射天天色天天干| 伊人久久五月天| 牛牛电影国产一区二区| 国产精品wwwwww| 亚洲国产欧美国产第一区| 精品在线视频一区二区| 偷拍欧美精品| 欧美极品欧美精品欧美图片| 国产一区二区三区四| 少妇精品一区二区三区| 亚洲精品成人在线| 一级久久久久久| 亚洲国产成人精品一区二区| 亚洲成a人v欧美综合天堂麻豆| 91精品国产91久久久久福利| а天堂中文最新一区二区三区| 久久综合中文色婷婷| 国产精品老熟女视频一区二区| 成人高清视频在线| 色偷偷男人天堂| 狠狠色狠狠色综合日日五| www视频在线| 日韩中文字幕网址| 人人鲁人人莫人人爱精品| 国产偷国产偷亚洲高清97cao| 91精品精品| 超碰超碰在线观看| 久久先锋影音av鲁色资源| 国产第一页第二页| 欧美一区二区成人6969| 午夜精品一区| 国产精品91在线| 中文精品一区二区| 丰满少妇久久久| 国产成人午夜99999| 熟女av一区二区| 欧美日韩精品一区二区天天拍小说| 青青草视频在线免费观看| 国内精品视频久久| av不卡一区| 欧美午夜性视频| 丰满少妇久久久久久久| 99热精品免费| 日韩精品在线一区二区| 麻豆传媒在线免费看| 成人免费自拍视频| 欧美电影一区| 久久6免费视频| 1区2区3区欧美| 国产白浆在线观看| 欧美激情女人20p| 99这里只有精品视频| 成人免费a级片| 国内精品第一页| av成人免费网站| 欧美一二区视频| 黄色成人在线网| 国产综合第一页| 亚洲欧洲一级| 香蕉网在线播放| 色丁香久综合在线久综合在线观看| 日本一区视频| 日本成人在线视频网址| 国产欧美久久一区二区三区| 日本男人操女人| 中文字幕精品一区| 国产精品人人爽| 欧美精品久久久久久久久久| 高清欧美性猛交xxxx黑人猛| 国产视频一视频二| 国产亚洲一区二区在线观看| 91禁在线观看| 欧美第一页在线| 欧美人与动xxxxz0oz| 成年人免费大片| 亚洲欧洲日产国产综合网| 99视频国产精品免费观看a| 欧美激情影音先锋| 欧美日韩一本| 一区二区在线免费看| 亚洲精品第一国产综合野| 污污网站免费在线观看| 国产精品视频公开费视频| 一区二区三区在线| 日本在线不卡一区二区| 日韩欧亚中文在线| 国产成人l区| 久久精品国产99精品国产亚洲性色| 久久精品女人| 欧美精品乱码视频一二专区| 亚洲精品ady| 久久亚洲资源中文字| 日本福利视频网站| 久久青草欧美一区二区三区| 国产又粗又猛又黄| 色综合久久88| 欧美亚洲激情| 又黄又色的网站| 欧美吞精做爰啪啪高潮| 在线黄色网页| 三级三级久久三级久久18| 国产一区二区不卡在线| 国产欧美一区二区三区在线看蜜臂| 日韩视频欧美视频| 人体久久天天| 最好看的中文字幕| 欧美亚洲高清一区二区三区不卡|