成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解QT 自定義控件 捕獲鼠標消息

移動開發
本文介紹的是詳解QT 自定義控件 捕獲鼠標消息,自定義控件的內容,去文章里面看,很詳細。先來看內容。

QT 自定義控件 捕獲鼠標消息是本文要介紹的內容。下午剛在qt中文論壇逛了下,發現有人提問說:能不能讓鼠標一移動到QlineEdit的控件上就觸發一個信號,我想了想,覺得這是可行的,根據在windows上的經驗,要想讓這樣的控件也來捕獲鼠標之類的消息,可以是這樣做的:

自己從系統默認的控件類里派生出自己的控件類來。其實這個這個類最主要的作用就是能讓自己來寫一些處理鼠標之類的函數,比方說在MFC里讓自己的這個控件類來增加對WM_MOUSEMOVE消息的處理函數。這樣鼠標一移動到控件上,我們自己的程序就能處理鼠標的移動消息了。

那么qt中能不能也這樣呢,翻了翻文檔,在Qwidget里發現有一個enterEvent()的函數,文檔介紹說一旦鼠標移動到Qwidget的時候,enterEvent()這個函數將被調用。所以我們也可以從控件類里派生出來一個自己的控件類,然后自己實現enterEvent()函數,在這個函數里發射一個信號。這就OK了。

大致代碼:

  1. class MyEdit:public QlineEdit  
  2. {  
  3.        Q_OBJECT  
  4.        public:  
  5.              MyEdit(QWidget * parent, const char * name);  
  6.               void enterEvent( QEvent * e);  
  7. };  
  8. MyEdit::MyEdit(QWidget * parent, const char * name):QLineEdit(parent,name)  
  9. {  
  10.        this->setText("11.11");  
  11. }  
  12. void MyEdit::enterEvent( QEvent * e)  
  13. {  
  14.        QString s = this->text();  
  15.        emit textChanged (s);  

我現在把textChanged (s)信號連接到一個顯示部件里,用QLCDNumber部件。

  1. class MyWindow:public QVBox  
  2. {  
  3.        public:  
  4.               MyWindow();  
  5.        private:  
  6.               MyEdit *                            lineedit;  
  7.               QLCDNumber *                   lcdnum;  
  8. };  
  9. MyWindow::MyWindow()  
  10. {  
  11.        QHBox* hbox1 = new QHBox(this);   
  12.        lineedit = new MyEdit(hbox1,0);  
  13.        QHBox* hbox2 = new QHBox(this);  
  14.        lcdnum = new QLCDNumber(hbox2);  
  15.        connect(lineedit,SIGNAL(textChanged ( const QString & )),lcdnum,SLOT(display ( const QString &)));  

主函數:

  1. int main(int argc, char **argv)   
  2. {  
  3.        QApplication a(argc, argv);  
  4.        MyWindow w;  
  5.        a.setMainWidget(&w);  
  6.        w.setGeometry(500,200,200,150);  
  7.        w.show();  
  8.        a.exec();  

OK

其實我覺得這是個經驗問題,像GUI程序,我覺得只是一些實現的類庫不一樣,比方說用qt的用qt,用MFC的用MFC,其實很多思路都會是差不多的。而只要你比較熟悉一種GUI庫了,其他的學起來都比較的輕松了。因為等到你一種庫搞得比較的熟悉了,GUI該有的些什么功能阿,控件阿,都比較熟悉了,我覺得就只剩下用什么用的庫來實現的問題了。這個時候只要有一份某種GUI庫的文檔。很多問題就號解決了。

小結:關于詳解QT 自定義控件 捕獲鼠標消息 的內容介紹完了希望本文隨你有所幫助!

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

2011-06-20 16:03:03

Qt 控件 鼠標

2011-06-23 10:49:13

Qt 自定義信號

2009-06-08 20:13:36

Eclipse自定義控

2011-04-19 10:33:16

ASP.NET自定義控

2013-04-19 10:14:24

2017-04-21 14:27:21

Android控件QQ未讀消息

2011-08-18 09:44:33

iPhone SDK儀表控件UIDialView

2017-02-17 09:37:12

Android自定義控件方法總結

2009-09-11 11:04:23

C# WinForm自

2009-09-03 13:34:03

.NET自定義控件

2019-06-10 10:08:16

Windows 10Windows鼠標指針

2022-06-30 14:02:07

鴻蒙開發消息彈窗組件

2009-08-03 13:34:06

自定義C#控件

2015-02-11 17:49:35

Android源碼自定義控件

2009-08-03 13:39:46

C#自定義用戶控件

2014-09-24 11:42:46

AndroidButton

2024-10-14 17:18:27

2021-08-16 14:45:38

鴻蒙HarmonyOS應用

2021-08-25 10:14:51

鴻蒙HarmonyOS應用

2009-08-06 17:13:56

ASP.NET自定義控
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 做a网站 | 亚洲欧美日韩国产 | 91中文在线观看 | 91小视频在线 | 午夜免费网站 | 一级毛片在线播放 | 日韩免费视频 | 精品国产一级 | 欧美极品少妇xxxxⅹ免费视频 | 国产传媒在线播放 | 99久久婷婷国产综合精品电影 | 欧美亚洲在线视频 | 精品一区二区三区四区五区 | 国产69精品久久99不卡免费版 | 黄色国产视频 | 亚洲精品在线看 | 一区二区久久 | 国产午夜精品久久久 | 亚洲欧美在线视频 | 欧美日韩在线视频观看 | 在线免费av电影 | 亚洲婷婷一区 | 欧美日韩国产一区二区三区 | 亚洲精品久久久9婷婷中文字幕 | 国产精品日韩欧美一区二区三区 | 亚洲一区二区三区在线视频 | 久久久久久久一区二区三区 | 精品久久久久久中文字幕 | 最近最新中文字幕 | 一区二区在线免费观看 | 欧美日韩亚洲在线 | www.伊人.com| 中文字幕一区二区三区四区五区 | 午夜精品一区 | 国产精品中文字幕一区二区三区 | 久久久久综合 | 又黑又粗又长的欧美一区 | 亚洲欧美精 | 国产91成人 | 在线观看国产 | 在线观看中文视频 |