Qt 5 開發(fā)及實(shí)例(第5版) 課件 第1章 Qt概述_第1頁(yè)
Qt 5 開發(fā)及實(shí)例(第5版) 課件 第1章 Qt概述_第2頁(yè)
Qt 5 開發(fā)及實(shí)例(第5版) 課件 第1章 Qt概述_第3頁(yè)
Qt 5 開發(fā)及實(shí)例(第5版) 課件 第1章 Qt概述_第4頁(yè)
Qt 5 開發(fā)及實(shí)例(第5版) 課件 第1章 Qt概述_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

QT5開發(fā)及實(shí)例(第5版)第1章Qt概述——什么是Qt01Qt的產(chǎn)生和發(fā)展Qt的產(chǎn)生和發(fā)展2008年,諾基亞公司從奇趣收購(gòu)了Qt,并從2009年5月發(fā)布的Qt4.5起開放源代碼。2011年,Digia公司(芬蘭的一家IT服務(wù)公司)從諾基亞收購(gòu)了Qt的商業(yè)版權(quán)。2012年8月9日,諾基亞宣布將Qt軟件業(yè)務(wù)正式出售給Digia。2013年7月3日,Digia公司發(fā)布Qt5.1并于次年4月配套推出了Qt跨平臺(tái)的集成開發(fā)環(huán)境QtCreator3.1.0。2014年9月16日,Digia成立了一個(gè)名為TheQtCompany的全資子公司,以進(jìn)一步推動(dòng)Qt產(chǎn)品的開發(fā)和市場(chǎng)擴(kuò)張,并建立起全新的Qt產(chǎn)品網(wǎng)站www.qt.io,該網(wǎng)站將Qt的商業(yè)業(yè)務(wù)和開源社區(qū)統(tǒng)一到同一個(gè)在線渠道之中。02Qt5.15與Qt6Qt5.15與Qt6隨著互聯(lián)網(wǎng)邁入“云”時(shí)代及物聯(lián)網(wǎng)的興起,TheQtCompany緊跟潮流于2020年底發(fā)布了面向未來生產(chǎn)力平臺(tái)的Qt6。因Digia志在同時(shí)成為桌面、嵌入式、移動(dòng)互聯(lián)網(wǎng)等眾多領(lǐng)域的開拓者,對(duì)Qt6進(jìn)行了“大刀闊斧”的重構(gòu),將原Qt5的大量傳統(tǒng)模塊和庫(kù)從Qt中剔除,從零開始基于最新的技術(shù)重新研發(fā)它們的替代品,并制定了雄心勃勃的計(jì)劃,但是這么一來卻使得原來基于Qt5開發(fā)的很多軟件功能在Qt6上暫時(shí)無法實(shí)現(xiàn)(因官方與之對(duì)應(yīng)的新技術(shù)模塊/庫(kù)尚未來得及做出來),為保持兼容和維護(hù)Qt生態(tài)圈的穩(wěn)定,官方在發(fā)布Qt6的同時(shí)也推出了Qt5.15,它是一個(gè)長(zhǎng)支持(LTS)版本,可看作是Qt5系列的“封筆之作”。QT5開發(fā)及實(shí)例(第5版)第1章Qt概述——Qt5.15的安裝01下載Qt在線安裝器和申請(qǐng)免費(fèi)賬號(hào)下載Qt在線安裝器和申請(qǐng)免費(fèi)賬號(hào)訪問Qt官網(wǎng)https://www.qt.io,點(diǎn)主頁(yè)右上角

按鈕進(jìn)入“GetQt&QA”頁(yè),找到“TryQtFrameworkandTools”版塊,如圖1.1所示,單擊“DownloadQt”按鈕,彈出Qt申請(qǐng)免費(fèi)賬號(hào)頁(yè),如圖1.2所示。下載Qt在線安裝器和申請(qǐng)免費(fèi)賬號(hào)圖1.2申請(qǐng)免費(fèi)賬號(hào)下載Qt在線安裝器和申請(qǐng)免費(fèi)賬號(hào)根據(jù)頁(yè)面欄目填寫信息,填寫完單擊底部“Submit”按鈕,如果填寫的信息形式上沒問題,系統(tǒng)首先向用戶提供的電話(筆者的是+8617714319***)發(fā)6位短信,在隨后出現(xiàn)的驗(yàn)證對(duì)話框輸入短信驗(yàn)證碼,驗(yàn)證通過后,輸入賬號(hào)密碼和對(duì)密碼再次輸入確認(rèn),系統(tǒng)會(huì)給用戶提供的電子郵箱發(fā)送郵件。完成后顯示頁(yè)面如圖。下載Qt在線安裝器和申請(qǐng)免費(fèi)賬號(hào)該頁(yè)面包含兩個(gè)方面信息:(1)提供在線安裝器下載。單擊“here”超鏈接,系統(tǒng)自動(dòng)識(shí)別當(dāng)前操作者使用的計(jì)算機(jī)操作系統(tǒng),并提供與之匹配的安裝器,用戶直接確認(rèn)下載即可。(2)提示用戶根據(jù)Qt官方發(fā)送的郵件鏈接盡快登錄驗(yàn)證,因?yàn)樵撴溄佑袝r(shí)效,使用后不能再用。進(jìn)入該鏈接網(wǎng)頁(yè),如圖完成Qt賬號(hào)登錄。

02安裝過程安裝過程安裝前要確保計(jì)算機(jī)是處于聯(lián)網(wǎng)狀態(tài)。(1)雙擊下載的安裝器文件,啟動(dòng)向?qū)В霈F(xiàn)如圖界面,要求輸入Qt賬號(hào)(也就是剛剛申請(qǐng)的免費(fèi)賬號(hào)),輸入完單擊“下一步”按鈕。(2)接下來出現(xiàn)“開源義務(wù)”頁(yè),勾選“我已閱讀并同意使用開源Qt的條款和條件”和“我是個(gè)人用戶,我不為任何公司使用Qt”,單擊“下一步”按鈕。安裝過程(3)在“安裝程序-Qt”頁(yè)直接單擊“下一步”按鈕。安裝器自動(dòng)獲取遠(yuǎn)程Qt安裝所需的元信息,進(jìn)入“ContributetoQtDevelopment”頁(yè)顯示提示信息,用戶可選擇向Qt官方發(fā)送(或不發(fā)送)有關(guān)自己Qt使用的統(tǒng)計(jì)信息。單擊“下一步”按鈕。(4)在“安裝文件夾”頁(yè)顯示如圖。安裝過程(5)在“選擇組件”頁(yè)選擇要安裝的組件,如圖。因?yàn)橐惭b的是Qt5.15,我們?cè)诮缑嬷醒雲(yún)^(qū)樹狀視圖的“Qt”節(jié)點(diǎn)下找到“Qt5.15.2”項(xiàng),展開,看到其包含的所有組件,只須選擇其中的部分進(jìn)行安裝。安裝過程再選擇其他模塊,有幾個(gè)模塊在本書實(shí)例開發(fā)中可能會(huì)用到,所以建議大家在此一并選擇裝上,如圖是筆者安裝Qt5.15時(shí)的勾選項(xiàng),供參考。(6)在“許可協(xié)議”頁(yè),選中“Ihavereadandagreetothetermscontainedinthelicenseagreements.”接受許可協(xié)議,單擊“下一步”按鈕。(7)在“開始菜單快捷方式”頁(yè)可命名Qt啟動(dòng)菜單名,這里保持默認(rèn)名,單擊“下一步”按鈕。(8)在“準(zhǔn)備安裝”頁(yè)顯示需要的磁盤空間,點(diǎn)“安裝”按鈕,開始在線安裝Qt5.15。安裝過程安裝完成的界面如圖,單擊“完成”按鈕結(jié)束安裝。系統(tǒng)會(huì)自行啟動(dòng)QtCreator。03運(yùn)行QtCreator運(yùn)行QtCreatorQtCreator啟動(dòng)后進(jìn)入初始界面,如圖。04Qt5.15開發(fā)環(huán)境Qt5.15開發(fā)環(huán)境在Qt程序開發(fā)過程中,可以通過Qt的GUI界面設(shè)計(jì)器(QtDesigner)進(jìn)行程序界面的繪制和布局,QtDesigner設(shè)計(jì)環(huán)境如圖。Qt5.15開發(fā)環(huán)境

對(duì)象檢查器(ObjectInspector):以兩列表格的形式列出窗體中每個(gè)控件的對(duì)象名及所屬類。初始窗體上尚未放置任何控件時(shí),僅有窗體自身的一個(gè)條目,可看到它的類型為QDialog(對(duì)話框)。

屬性編輯器(PropertyEditor):以兩列表格的形式顯示當(dāng)前窗體或其上被選中控件的屬性和值,可根據(jù)設(shè)計(jì)需要在其中修改屬性值。

Action編輯器(ActionEditor):用于編輯菜單/工具欄的選項(xiàng)動(dòng)作。

信號(hào)和槽編輯器(SignalsandSlotsEditor):列出了窗體界面上所有的信號(hào)/槽關(guān)聯(lián)。Qt5.15開發(fā)環(huán)境設(shè)計(jì)區(qū)窗體的頂部有一系列工具按鈕可用于在設(shè)計(jì)界面時(shí)切換編輯模式,Qt支持四種編輯模式,如圖。Qt5.15開發(fā)環(huán)境各模式的用途簡(jiǎn)介如下。

編輯控件(EditWidgets):這是默認(rèn)的模式,可以在窗體上拖曳放置控件并設(shè)置它們的屬性和外觀。

編輯信號(hào)/槽(EditSignals/Slots):此模式下可以為窗體上的控件關(guān)聯(lián)系統(tǒng)中已有的信號(hào)和槽。

編輯伙伴(EditBuddies):可以建立QLabel標(biāo)簽與其他類型控件的伙伴關(guān)系,即當(dāng)用戶激活標(biāo)簽的快捷鍵時(shí),鼠標(biāo)/鍵盤的焦點(diǎn)會(huì)轉(zhuǎn)移到它的伙伴控件上。Qt中只有QLabel標(biāo)簽對(duì)象才可以有伙伴控件,也只有該QLabel對(duì)象具有快捷鍵(在顯示文本的某個(gè)字符前面添加一個(gè)前綴“&”就可以定義快捷鍵)時(shí),伙伴關(guān)系才有效。例如:QLineEdit*leAge=newQLineEdit(this);QLabel*lbAge=newQLabel("&Age",this);lbAge->setBuddy(leAge);

編輯Tab順序(EditTabOrder):可以設(shè)置Tab鍵在窗體控件間的焦點(diǎn)順序。QT5開發(fā)及實(shí)例(第5版)第1章Qt概述——Qt5開發(fā)入門實(shí)例Qt5開發(fā)入門實(shí)例當(dāng)用戶輸入一個(gè)圓的半徑后,可以顯示計(jì)算后的圓周長(zhǎng)和面積值,運(yùn)行效果如圖。01設(shè)計(jì)器QtDesigner開發(fā)實(shí)例1.創(chuàng)建Qt項(xiàng)目2.界面設(shè)計(jì)3.認(rèn)識(shí)程序啟動(dòng)入口4.關(guān)聯(lián)信號(hào)與槽5.功能開發(fā)設(shè)計(jì)器QtDesigner開發(fā)實(shí)例【例】(簡(jiǎn)單)(CH101)采用設(shè)計(jì)器QtDesigner實(shí)現(xiàn)計(jì)算圓面積,完成上圖所示的功能。首先創(chuàng)建Qt項(xiàng)目,接著進(jìn)行界面設(shè)計(jì),然后編寫相應(yīng)的功能代碼。1.創(chuàng)建Qt項(xiàng)目(1)運(yùn)行QtCreator,在歡迎界面左側(cè)點(diǎn)“CreateProject...”按鈕,或者選擇“文件”→“NewProject...”命令,創(chuàng)建一個(gè)新的項(xiàng)目,出現(xiàn)“NewProject”窗口,如圖。設(shè)計(jì)器QtDesigner開發(fā)實(shí)例(2)選擇一個(gè)項(xiàng)目模板。點(diǎn)左欄“Projects”列表下的“Application(Qt)”,中間欄選“QtWidgetsApplication”選項(xiàng),單擊右下角“Choose...”按鈕,進(jìn)入下一步。(3)命名自己的項(xiàng)目并選擇保存路徑。項(xiàng)目命名沒有大小寫要求,依個(gè)人習(xí)慣,這里將項(xiàng)目命名為CircleCal。注意:保存項(xiàng)目的路徑中不能有中文字符。如圖所示,單擊“下一步”按鈕進(jìn)入下一步驟。設(shè)計(jì)器QtDesigner開發(fā)實(shí)例(4)接下來的界面讓用戶選擇項(xiàng)目的構(gòu)建(編譯)工具,這里選qmake,如圖所示,單擊“下一步”按鈕。設(shè)計(jì)器QtDesigner開發(fā)實(shí)例(5)在“ClassInformation”頁(yè)根據(jù)實(shí)際需要選擇一個(gè)“基類”。這里選擇QDialog對(duì)話框類作為基類,“Classname”(類名)填寫Dialog,這時(shí)“Headerfile”(頭文件)、“Sourcefile”(源文件)及“Formfile”(界面文件)都出現(xiàn)默認(rèn)的文件名dialog,但建議讀者根據(jù)項(xiàng)目程序功能改名,這里將3個(gè)文件都重命名為circleCal。默認(rèn)選中“Generateform”(創(chuàng)建界面)復(fù)選框,表示需要采用設(shè)計(jì)器QtDesigner來可視化地設(shè)計(jì)界面,如圖所示,單擊“下一步”按鈕。設(shè)計(jì)器QtDesigner開發(fā)實(shí)例(6)再次單擊“下一步”按鈕,進(jìn)入“KitSelection”(選擇構(gòu)建套件)界面,由于之前安裝選擇組件的時(shí)候已經(jīng)指定了使用唯一的編譯器MinGW,故這里只有一個(gè)選項(xiàng)“DesktopQt5.15.2MinGW64-bit”,如圖,直接單擊“下一步”按鈕進(jìn)入下一步驟即可。設(shè)計(jì)器QtDesigner開發(fā)實(shí)例(7)此時(shí),相應(yīng)的文件已經(jīng)自動(dòng)加載到項(xiàng)目文件列表中,如圖。設(shè)計(jì)器QtDesigner開發(fā)實(shí)例QtCreator界面左上方出現(xiàn)項(xiàng)目結(jié)構(gòu)的樹形視圖,項(xiàng)目的所有文件自動(dòng)在視圖中分類顯示,如圖1.20(a)所示,各文件包含在相應(yīng)的節(jié)點(diǎn)中,單擊節(jié)點(diǎn)前的“”圖標(biāo)可以顯示該節(jié)點(diǎn)下的文件;而單擊節(jié)點(diǎn)前的“”圖標(biāo)則可隱藏該節(jié)點(diǎn)下的文件。單擊上部灰色工具欄中的過濾符號(hào)后,彈出一個(gè)下拉列表,勾選“簡(jiǎn)化樹形視圖”則切換到簡(jiǎn)單的文件列表樣式,如圖1.20(b)所示。

設(shè)計(jì)器QtDesigner開發(fā)實(shí)例2.界面設(shè)計(jì)拖曳左側(cè)組件箱的滑動(dòng)條,在最后的DisplayWidgets容器欄(如圖1)中找到Label標(biāo)簽控件,拖曳三個(gè)此控件到中央設(shè)計(jì)區(qū)的窗體上;同樣,在InputWidgets容器欄(如圖2)中找到LineEdit單行文本框控件,也拖曳三個(gè)到窗體上,用于輸入半徑值及顯示計(jì)算結(jié)果;在Buttons容器欄(如圖3)中找到PushButton按鈕控件,拖曳一個(gè)到窗體上。

設(shè)計(jì)器QtDesigner開發(fā)實(shí)例設(shè)置窗體上各控件的屬性。分別選中要設(shè)置屬性的控件,根據(jù)表1.1在設(shè)計(jì)環(huán)境右下方的屬性編輯器中進(jìn)行設(shè)置。編號(hào)控件類別對(duì)象名稱屬性說明

DialogDialoggeometry:[(0,0),350x200]windowTitle:計(jì)算圓面積①Labellabelgeometry:[(80,40),71x21]text:半徑=②Labellabel_2geometry:[(80,80),71x21]text:周長(zhǎng)=③Labellabel_3geometry:[(80,120),71x21]text:面積=④LineEditleRadiusgeometry:[(140,40),113x21]⑤LineEditleLengthenabled:取消勾選,表示本文本框不可輸入geometry:[(140,80),113x21]⑥LineEditleAreaenabled:取消勾選,表示本文本框不可輸入geometry:[(140,120),113x21]⑦PushButtonpbCalgeometry:[(140,160),93x28]text:計(jì)算設(shè)計(jì)器QtDesigner開發(fā)實(shí)例設(shè)計(jì)區(qū)窗體呈現(xiàn)的效果如圖。此時(shí)從對(duì)象檢查器可看到窗體中各控件對(duì)象的名稱及所屬的類,如圖。設(shè)計(jì)器QtDesigner開發(fā)實(shí)例3.認(rèn)識(shí)程序啟動(dòng)入口在開發(fā)功能之前,先來簡(jiǎn)單認(rèn)識(shí)一下Qt程序的啟動(dòng)入口。每個(gè)Qt項(xiàng)目都有一個(gè)最初執(zhí)行的入口函數(shù),在項(xiàng)目樹形視圖的“Sources”節(jié)點(diǎn)下找到main.cpp文件,其中的main()函數(shù)就是整個(gè)項(xiàng)目程序的啟動(dòng)入口,如下:#include"circleCal.h" //(a)

#include<QApplication> //(b)

intmain(intargc,char*argv[]) //(c){QApplicationa(argc,argv); //(d)Dialogw; //創(chuàng)建一個(gè)對(duì)話框?qū)ο體.show(); //(e)returna.exec(); //(f)}設(shè)計(jì)器QtDesigner開發(fā)實(shí)例4.關(guān)聯(lián)信號(hào)與槽(1)添加槽右擊對(duì)象檢查器中的“Dialog”對(duì)象,彈出快捷菜單選擇“改變信號(hào)/槽...”,彈出“Dialog的信號(hào)/槽”對(duì)話框,點(diǎn)上部“槽”列表左下角的按鈕,列表中出現(xiàn)一可編輯條目,輸入槽calCircle(),點(diǎn)“確定”按鈕,如圖。設(shè)計(jì)器QtDesigner開發(fā)實(shí)例(2)進(jìn)入“信號(hào)/槽”編輯模式點(diǎn)設(shè)計(jì)區(qū)窗體頂部的(編輯信號(hào)/槽)按鈕或選擇主菜單“編輯”→“EditSignals/Slots”。(3)按鈕clicked信號(hào)連接槽移動(dòng)鼠標(biāo)指針到“計(jì)算”(pbCal)按鈕上,按鈕周邊出現(xiàn)紅色邊框,按下左鍵拖曳,從按鈕上拉出一條接地線,如圖。設(shè)計(jì)器QtDesigner開發(fā)實(shí)例(4)文本框returnPressed信號(hào)連接槽操作類同第(3)步,拖曳半徑文本框(leRadius)接地,在彈出“配置連接”對(duì)話框中分別選中文本框的returnPressed信號(hào)與窗體的calCircle()槽,點(diǎn)“確定”按鈕。以上兩個(gè)信號(hào)與槽關(guān)聯(lián)好的界面如圖。設(shè)計(jì)器QtDesigner開發(fā)實(shí)例5.功能開發(fā)首先,在circleCal.h中聲明槽函數(shù)calCircle()(加黑處),如下:#ifndefDIALOG_H#defineDIALOG_H

#include<QDialog>

QT_BEGIN_NAMESPACEnamespaceUi{classDialog;}QT_END_NAMESPACE

classDialog:publicQDialog{Q_OBJECT //(a)

public:Dialog(QWidget*parent=nullptr);~Dialog();

privateslots:

voidcalCircle(); //(b)

private:Ui::Dialog*ui; //(c)};#endif//DIALOG_H在circleCal.cpp中編寫槽函數(shù)calCircle()的實(shí)現(xiàn)代碼(加黑段),如下。02直接代碼開發(fā)實(shí)例1.創(chuàng)建Qt項(xiàng)目2.代碼定義界面3.關(guān)聯(lián)信號(hào)與槽4.功能開發(fā)直接代碼開發(fā)實(shí)例【例】(簡(jiǎn)單)

(CH102)采用編寫代碼的方式來實(shí)現(xiàn)計(jì)算圓面積的功能。實(shí)現(xiàn)步驟如下。1.創(chuàng)建Qt項(xiàng)目創(chuàng)建過程同上節(jié)設(shè)計(jì)器QtDesigner開發(fā)實(shí)例,只是第(5)步在“ClassInformation”頁(yè)取消“Generateform”(創(chuàng)建界面)復(fù)選框的選中狀態(tài),這樣創(chuàng)建的Qt項(xiàng)目樹形視圖中將不包含“Forms”節(jié)點(diǎn)及其下的circleCal.ui文件,故無法進(jìn)入QtDesigner設(shè)計(jì)環(huán)境,只能用代碼來定義界面。2.代碼定義界面首先,在項(xiàng)目circleCal.h中添加如下加黑代碼。然后,在circleCal.cpp中編寫initUi()函數(shù),以代碼構(gòu)建程序界面。直接代碼開發(fā)實(shí)例3.關(guān)聯(lián)信號(hào)與槽本例在創(chuàng)建半徑輸入文本框和“計(jì)算”命令按鈕的代碼后面,都用語句設(shè)置了信號(hào)與槽的關(guān)聯(lián),如下:leRadius=newQLineEd

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論