国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

深度解析 QT Creator 使用

移動開發
本文介紹的是 QT Creator 使用,QT Creator,我們也接觸不少了,先來看 內容。

QT Creator 使用是本文要介紹的內容,先來看內容。用***的Qt Creator選擇GUI的應用會產生含有如下文件的工程

 QT Creator 使用

下面就簡單分析下各部分的功能。.pro文件是供qmake使用的文件,不是本文的重點【不過其實也很簡單的】,在此不多贅述。

所以呢,還是從main開始,

  1. #include <QtGui/QApplication>    
  2. #include "mainwindow.h"    
  3. int main(int argc, char *argv[])    
  4. {    
  5. QApplication a(argc, argv);    
  6. MainWindow w;    
  7. w.show();    
  8. return a.exec();    
  9. }   

很簡單的樣子

QApplication a(argc, argv)和a.exec()可以理解為載入了Qt的架構,跑Qt的程序都要有此部,就不多說了。其中調用了個MainWindow并把它show了出來,具體分析下

下面是mainwindow.h中的內容

  1. #ifndef MAINWINDOW_H    
  2. #define MAINWINDOW_H    
  3. #include <QtGui/QMainWindow>    
  4. namespace Ui    
  5. {    
  6. class MainWindow;    
  7. }    
  8. class MainWindow : public QMainWindow    
  9. {    
  10. Q_OBJECT    
  11. public:    
  12. MainWindow(QWidget *parent = 0);    
  13. ~MainWindow();    
  14. private:    
  15. Ui::MainWindow *ui;    
  16. };    
  17. #endif // MAINWINDOW_H   

開始的namespace Ui可能讓人有點摸不著頭腦,這是因為qt把ui相關的類單獨獨立了出來,但類名相同,禁用namespace區別【但是就目前的使用來說,感覺這樣做不怎么好,后面我會解釋原因】

聲明namespace Ui是因為要調用Ui中的MainWindow,此MainWindow非彼MainWindow,后面涉及的*ui指針會調用它!

關于Q_OBJECT就不說了,Qt中與signal和slot相關的類都要這么聲明下。

仔細看出了構造,析構就沒啥了,只有那么個*ui!不過現在如果運行下,也只會生成個窗體而已。

下面來看構造函數和析構函數,其實也就是mainwindow.c

  1. #include "mainwindow.h"    
  2. #include "ui_mainwindow.h"    
  3. MainWindow::MainWindow(QWidget *parent)    
  4. : QMainWindow(parent), ui(new Ui::MainWindow)    
  5. {    
  6. ui->setupUi(this);    
  7. }    
  8. MainWindow::~MainWindow()    
  9. {    
  10. delete ui;    
  11. }   

構造時在堆上new了個Ui域中的MainWindow,并調用setupUi,析構僅僅是將其delete了,還是很簡單!

正如前面所述Qt很好的把ui分離了出去,前面圖中的那個.ui文件就是讓QtDesigner使的布局用文件!

現在運行下,會生成ui_mainwindow.h,這個里面會涉及到真正布局用的函數,也就是那個Ui域中的MainWindow.下面具體看一下,

  1. #ifndef UI_MAINWINDOW_H    
  2. #define UI_MAINWINDOW_H    
  3. #include <QtCore/QVariant>    
  4. #include <QtGui/QAction>    
  5. #include <QtGui/QApplication>    
  6. #include <QtGui/QButtonGroup>    
  7. #include <QtGui/QHeaderView>    
  8. #include <QtGui/QMainWindow>    
  9. #include <QtGui/QMenuBar>    
  10. #include <QtGui/QStatusBar>    
  11. #include <QtGui/QToolBar>    
  12. #include <QtGui/QWidget>    
  13. QT_BEGIN_NAMESPACE    
  14. class Ui_MainWindow    
  15. {    
  16. public:    
  17. QMenuBar *menuBar;    
  18. QToolBar *mainToolBar;    
  19. QWidget *centralWidget;    
  20. QStatusBar *statusBar;    
  21. void setupUi(QMainWindow *MainWindow)    
  22. {    
  23. if (MainWindow->objectName().isEmpty())    
  24. MainWindow->setObjectName(QString::fromUtf8("MainWindow"));    
  25. MainWindow->resize(600, 400);    
  26. menuBar = new QMenuBar(MainWindow);    
  27. menuBar->setObjectName(QString::fromUtf8("menuBar"));    
  28. MainWindow->setMenuBar(menuBar);    
  29. mainToolBar = new QToolBar(MainWindow);    
  30. mainToolBar->setObjectName(QString::fromUtf8("mainToolBar"));    
  31. MainWindow->addToolBar(mainToolBar);    
  32. centralWidget = new QWidget(MainWindow);    
  33. centralWidget->setObjectName(QString::fromUtf8("centralWidget"));    
  34. MainWindow->setCentralWidget(centralWidget);    
  35. statusBar = new QStatusBar(MainWindow);    
  36. statusBar->setObjectName(QString::fromUtf8("statusBar"));    
  37. MainWindow->setStatusBar(statusBar);    
  38. retranslateUi(MainWindow);    
  39. QMetaObject::connectSlotsByName(MainWindow);    
  40. } // setupUi    
  41. void retranslateUi(QMainWindow *MainWindow)    
  42. {    
  43. MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));    
  44. Q_UNUSED(MainWindow);    
  45. } // retranslateUi    
  46. };    
  47. namespace Ui {    
  48. class MainWindow: public Ui_MainWindow {};    
  49. } // namespace Ui    
  50. QT_END_NAMESPACE    
  51. #endif // UI_MAINWINDOW_H   

吼吼,一下子多了不少,但其實還是很容易的。Ui_MainWindow聲明了幾個構件,具體我就不說了,因為也沒啥可說的,它實現了setupUi函式,也就是前面那個MainWindow中調用的setupUi。

但是要說明的是QMetaObject::connectSlotsByName函式會自動連接相應名稱的信號與槽,但要注意它連接的是傳入的MainWindow及其子構件【不是子類】,注意前邊ui->setupUi(this)中傳入的this,也就是非ui域中的MainWindow,所以如果要聲明signal和slot時還是要在非ui域的MainWindow中來聲明,然后通過ui->xxx的形式來與GUI產生交互!如果我們在QtDesiner中拖放一個按鈕然后點擊go to slot就很容易印證這一點。

retranslateUi則會為ui中的構件命名,具體也不在此多說。

***還是看看這段代碼

  1. namespace Ui {  
  2. class MainWindow: public Ui_MainWindow {};  
  3. } // namespace Ui 

前面非Ui域中的MainWindow的*ui指向的是Ui域中的MainWindow,而Ui域中的MainWindow出了繼承了Ui_MainWindow之外,內部一貧如洗!【有點繞口了】

來張圖片,再復習下

 QT Creator 使用

***要說明的有兩點,個人感覺是QtCreator的BUG,

其一是如果自己定制控件,并且想在內置的designer中載入,win下用mingw是不可行的,因為sdk套件中的designer是用微軟的編譯器編譯的,當然也有個比較方便的解決的辦法,就是把qtcreator的源碼下來,用現有的creator再編譯一遍,然后覆蓋過去就行了。

其二也是前面提到的,兩個同名的MainWindow僅用Ui域來區分,雖然感覺這樣做從設計上來說是很美的,但調試時卻會有些許的問題,總之在creator中調試不能識別正確的域,具體見下圖例

 QT Creator 使用

像上面這張圖this實際上應該指向的是非Ui域中的MainWindow【this其實指向的是MainWindow,它并不知是哪個域的MainWindow,再往下展開就錯誤的指向了Ui域】,但調試的數據區指向了Ui域中的MainWindow,當然也不是沒有解決的辦法,你可以手工將Ui域中的MainWindow改下名就可以獲得正確的調試信息了,只是這樣做稍顯麻煩,而且再度運行qmake后可能還要重新修改。

轉自: http://blog.csdn.net/pingf0/archive/2009/09/19/4571443.aspx

小結: QT Creator 使用的內容介紹完了,希望本文能夠對你有幫助,更多內容請參考編輯推薦!先來介紹幾篇文章,你應該很有興趣。

http://mobile.51cto.com/symbian-268176.htm       qt網絡
http://mobile.51cto.com/symbian-268170.htm       http 編程
http://mobile.51cto.com/symbian-268167_1.htm   獲取網絡地址

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

2011-06-30 16:53:18

QT Creator TableWidge

2011-06-21 17:45:27

Qt Creator

2011-06-10 09:09:38

Qt Creator OpenCV

2011-07-01 14:39:08

Qt Quick

2014-07-21 08:53:16

Qt Creator

2011-06-09 14:56:53

QT 編譯

2011-06-29 10:46:01

Qt Eembedded Linux

2011-06-22 16:50:09

Qt 進程 通信機制

2011-06-16 15:17:16

2011-06-21 14:01:07

QT 界面庫 Embedded

2011-06-24 13:08:34

Qt Qt 4.5.3 移植

2011-06-21 18:02:14

Qt 動態 鏈接庫

2011-06-15 13:20:56

QT Creator 升級

2011-07-04 10:09:19

Qt Creator BUG

2011-06-10 09:29:36

Qt Creator 布局管理器

2011-06-29 14:56:28

Qt Creator 快捷捷

2011-06-20 14:18:27

Qt 資源 文件

2011-03-18 20:13:01

QtUbuntu

2011-06-21 15:48:41

2011-06-21 15:58:20

Qt 數據庫
點贊
收藏

51CTO技術棧公眾號

国产精品美女网站| 日本福利视频| 成人性生交大片免费看视频r| 国产精品久久久久久久久快鸭| 在线视频不卡一区二区| 在线中文字幕第一区| 色诱亚洲精品久久久久久| 亚洲欧美日韩一级| 欧美jjzz| 欧美视频在线观看 亚洲欧| 麻豆av免费在线| 亚洲一区二区在线视频| 成年女人18级毛片毛片免费| 成人不卡免费av| 无码人妻精品一区二区蜜桃百度| 岛国精品一区二区| 欧美精品一区二区三区在线播放| 精品亚洲精品| 丝袜亚洲另类欧美重口| 蜜桃日韩视频| 日韩有码一区| 精品国产一区二区三区久久| 男女视频在线| 欧美日韩久久久一区| 最新在线观看av网站| 国产精品美女久久久久av爽李琼| 九色自拍视频在线观看| 国产精品一区二区在线观看不卡 | 国产一区二区三区黄网站| 欧美日韩国产首页| 成r视频免费观看在线播放| 久久久久久一二三区| 成品人视频ww入口| 国产一区二区三区四区在线观看| 欧美一区亚洲二区| 99riav国产精品| 不卡一区二区三区四区五区| 天天操夜夜操国产精品| 国产精品久久久久久久7电影| 欧美日韩破处| 欧美主播福利视频| 国产不卡一区| 国产精品一区电影| 欧美激情黄色片| 亚洲999一在线观看www| 亚洲色图网站| 亚洲free性xxxx护士白浆| 婷婷色综合网| 91传媒在线免费观看| 亚洲精品激情| 日韩中文一区| 精品一二三四在线| 免费国产黄色网址| 国产精品萝li| 91在线电影| 欧美中文字幕一区| 影音先锋在线视频| 亚洲日本成人女熟在线观看| 91国拍精品国产粉嫩亚洲一区 | 一级片免费在线观看| 欧美色播在线播放| 国产三区视频在线观看| 日韩大片免费观看视频播放| 亚洲最大的免费视频网站| 超碰在线公开免费| 少妇免费毛片久久久久久久久| 亚洲一区黄色| 在线观看日韩片| 337p粉嫩大胆色噜噜噜噜亚洲| 日本人视频jizz页码69| 国产网站在线播放| 一区二区国产精品| 在线观看日韩片| 2020国产精品久久精品美国| av天在线播放| 欧美欧美欧美欧美| 9999在线视频| 久久久国产成人精品| 成人精品亚洲| 免费在线观看污污视频| 中文字幕精品一区| 日本视频不卡| 国模gogo一区二区大胆私拍| 女人天堂亚洲aⅴ在线观看| 天天人人精品| 国产精品国产a| 里番在线观看网站| 欧美成人性生活| 亚洲第一在线| 欧美一级黄色片视频| 欧美优质美女网站| 日韩精品一页| 国产在线视频欧美一区二区三区| av成人免费在线观看| 成人不用播放器| 色偷偷888欧美精品久久久 | 新版的欧美在线视频| 91福利视频网| 玖玖国产精品视频| 2019中文字幕视频| 亚洲黄色av女优在线观看 | 亚洲国产欧美一区二区丝袜黑人| 成人福利免费在线观看| 欧美理论一区二区| 亚洲精品国久久99热| 国产高清视频色在线www| 91av国产在线| 国产高清不卡一区| 午夜伦理在线| 欧美在线性爱视频 | 欧美另类极品videosbest最新版本| 天天射—综合中文网| www黄色日本| 少妇精品久久久一区二区三区| 欧美精品电影在线播放| 老司机aⅴ在线精品导航| 日本免费高清一区| 亚洲www啪成人一区二区麻豆| 日韩电影精品| 亚洲精品自在在线观看| 欧美视频一二三| 美女视频免费精品| 国产精品视频网站在线观看| 欧洲一区在线观看| 不卡av一区二区| 男人女人黄一级| 亚洲国产天堂网精品网站| 欧美在线高清| 日本aa大片在线播放免费看| 麻豆国产精品va在线观看不卡| 蜜臀av一区二区三区| 免费大片在线观看www| 国产一区深夜福利| 国产精品麻豆久久久| 国产福利一区二区三区在线播放| 日韩电影在线播放| 欧美专区日韩专区| 一区二区三区四区在线观看国产日韩| jizz欧美大全| 高清亚洲成在人网站天堂| www.欧美精品一二区| 欧美freesex黑人又粗又大| 日本精品一区二区| 91精品久久久久久久91蜜桃| 欧美久久成人| 国产在线黄色| 国产精品一区二区三区在线观| 亚洲成人av一区| 视频国产一区| 日本调教视频在线观看| 91国语精品自产拍在线观看性色| 久久久青草青青国产亚洲免观| 97精品国产99久久久久久免费| 2022中文字幕| 日韩一中文字幕| 久久老女人爱爱| 亚洲天堂av资源在线观看| 精品久久久久久无码国产| 欧美久久久精品| 国产精品伦理一区二区| 国产成人在线中文字幕| 五月婷婷狠狠操| 久久免费国产视频| 中文字幕一区二区在线观看 | 日韩福利影院| 精品人伦一区二区色婷婷| 老鸭窝亚洲一区二区三区| 中文字幕有码在线观看| 亚洲精品一区二| 国产一区二区三区欧美| 成人黄色在线网站| 精品国产亚洲日本| 男人捅女人免费视频| 国产精品视频午夜| 色天使色偷偷av一区二区| 国产精品美乳在线观看| 91老司机福利 在线| 亚洲一区二区三区在线免费 | 亚洲精品国产电影| 国产在线不卡一区| 欧美一区在线观看视频| 色老板视频在线观看| av免费观看久久| 精品捆绑美女sm三区| 国产成人免费视频网站| 亚洲国产天堂| 日本欧洲一区| 精品久久精品久久| 亚洲图片制服诱惑| 最新国产精品久久精品| 久久久久久久久久久久久久| 亚洲欧美成人影院| 欧美综合在线观看视频| 国产在线精品一区免费香蕉| 日韩欧美一区二区视频| 91在线视频播放地址| 久久影视一区| 国内小视频在线看| 天天爽人人爽夜夜爽| 不卡一区二区三区四区五区|