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