從零開始學(xué)Qt(三)從Hello, Qt 說起
從Hello, Qt 說起
?????????????????????????????????????????????????????????????????????????????????????????????????? ????????????-----書不記,熟讀可記;義不精,細(xì)思可精。
??? ????首先先說明下,這個教程將會慢慢深入。不然會讓學(xué)習(xí)的人,望而卻步。所以這篇博客講會以最簡單的“Hello, Qt!”說起,并簡單的介紹下該項(xiàng)目。
??? ??? 我相信有部分同學(xué)喜歡專研的,還會深究很多細(xì)節(jié)的知識點(diǎn)。所以我的博客將會從這里開始分叉出第二個部分《Qt之漫談》。這個部分可以跟著《從零開始學(xué)Qt》同步進(jìn)行,也可以學(xué)習(xí)完《從零開始學(xué)Qt》后再來吸收第二部分的知識點(diǎn)。作為博主,希望學(xué)者漫談部分也要穿插的看。但是看這篇之前務(wù)必看《Qt之漫談(一)Qt Creator簡介(1)》。
1、新建工程
?????? ??? 還是跟之前一樣,跟著我一步一步來。我基本每一個步驟都有解釋。
????????就是這么簡單,新建工程結(jié)束。
2、添加一個QLabel控件
??????? 還是跟著我一步一步做。
??????? 1)展開工程的所有文件,如下圖所示:
????????2)雙擊界面文件下的mainwindow.ui,將會進(jìn)入Qt Designer(界面設(shè)計(jì))。
??????? 3)添加QLabel控件,添加方法如下圖所示:
??????? 4)回到編輯界面,具體操作如下圖所示:
3、運(yùn)行工程
??????? 直接點(diǎn)擊運(yùn)行工程,具體操作如下圖所示:
????????
????????運(yùn)行結(jié)果如下圖所示:
????
4、簡單分析工程
??????? 我們對該工程進(jìn)行簡單的分析,這里將不深入了了解。一來如果一下子就深入講解,篇幅太長,會讓人很厭煩/難受;二來也不適合初學(xué)者學(xué)習(xí)。
??????? 1)簡單介紹工程目錄
????????
??????? 從上圖中可以看到工程由:.pro文件、頭文件、源文件、界面文件組成。其實(shí)除了這4個外,還有資源文件,這個工程沒有體現(xiàn)出來。他們到底是啥東西呢?
??????? .pro文件:(project file)就是Qt的工程文件,配置整個工程。由qmake處理得出makefile文件。他可以配置加載Qt的哪些模塊;控制編譯器(release,debug等);配置動態(tài)庫;包含了哪些.cpp、.h文件;包含了哪些資源等等。詳細(xì)請看《Qt之漫談》。
??????? 頭文件/源文件:簡單籠統(tǒng)的說,.h 是申明,如類的定義、類成員函數(shù)申明、類的成員變量申明。.cpp可以說是實(shí)現(xiàn),如實(shí)現(xiàn)函數(shù)、初始化變量等。
????? .ui界面文件:其實(shí)是XML,你可以用記事本打開mainwindow.ui。但是我們從Qt Creator,或者Qt Designer里面打開該文件的話,就會顯示我們設(shè)計(jì)的界面。所以從我們就知道Qt Designer是個啥東西了,不就是編輯XML文件/解析XML文件。他到底是怎么跟我們工程關(guān)聯(lián)起來呢?我們將會在后面的課程中提到。
??????? .qrc資源文件:顧名思義,就是工程的資源唄。比如:圖像資源、Qss資源、音頻資源等。
??? 2)分析main.cpp
?? main.cpp的代碼如下:
#include?"mainwindow.h"
#includeint?main(int?argc,?char?*argv[])
{
????QApplication?a(argc,?argv);
????MainWindow?w;
????w.show();
????return?a.exec();
}前兩行:是包含頭文件,只有包含了才能應(yīng)用。
在main()函數(shù)里面的的第一句:是創(chuàng)建一個QApplication類的實(shí)例。對于Qt程序而已,main函數(shù)一般都會創(chuàng)建一個Application對象(GUI程序是QApplication,非GUI程序是QCoreApplication),該對象是用于管理QT程序的生命周期,開啟事件循環(huán)。
接下來的一句是創(chuàng)建一個MainWindow對象,該對象就是我們前面新建一個QLabel控件的類。該類繼承于主窗口類QMainWindow。
接下來的一句,w.show():是讓該主窗口顯示出來。
接下來a.exec():是開啟事件循環(huán)。等我們關(guān)閉了顯示出來的窗口,該循環(huán)事件也會隨之結(jié)束。
結(jié)束:
?如果有同學(xué)會遇到問題,可以加QQ群討論。如果我哪里錯了,也希望有人告知我,我來修改文章,以免誤導(dǎo)他人。
??





