




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Qt6.2/C++程序設(shè)計與桌面應(yīng)用開發(fā)21世紀(jì)高等學(xué)校計算機類課程創(chuàng)新規(guī)劃教材–微課視頻版教材目錄第1章初識Qt框架第2章Qt開發(fā)基礎(chǔ)第3章界面設(shè)計組件第4章主框架窗口第5章對話框設(shè)計第6章事件系統(tǒng)第7章文件與數(shù)據(jù)庫第8章模型/視圖結(jié)構(gòu)第9章圖形繪制第10章多媒體編程第11章網(wǎng)絡(luò)編程第12章進程與線程教材目錄第1章初識Qt框架1.1Qt簡介1.2開發(fā)環(huán)境搭建1.3程序設(shè)計方式1.4項目結(jié)構(gòu)分析1.1Qt簡介Qt是一個基于C++面向?qū)ο蟪绦蛟O(shè)計語言、功能全面、跨平臺的圖形用戶界面(GUI)應(yīng)用程序框架。它提供了一種高效的、真正基于組件編程模式的應(yīng)用程序設(shè)計解決方案。Qt實際上就是一套C++應(yīng)用程序開發(fā)類庫,與MicrosoftMFC類似。歷史及應(yīng)用1、發(fā)展歷程Qt由挪威Trolltech(奇趣科技)公司于1991年開發(fā),在2008年,Trolltech公司被諾基亞公司收購,Qt也因此成為諾基亞旗下的編程語言工具。2012年,芬蘭的Digia公司完成對諾基亞公司Qt技術(shù)平臺和知識產(chǎn)權(quán)的收購,Qt由此歸屬于Digia公司。2014年,Digia成立獨立的Qt公司,專門負責(zé)Qt的開發(fā)、維護和商業(yè)推廣。歷史及應(yīng)用2、應(yīng)用實例自1995年以來,Qt逐步進入商業(yè)領(lǐng)域,已成為數(shù)以萬計商業(yè)和開源應(yīng)用程序的基礎(chǔ)。QtC++框架一直都是商業(yè)應(yīng)用程序的核心,無論是跨國公司和大型組織,如Adobe、Boeing、Google、IBM、Motorola、NASA、Skype等,還是無數(shù)小型公司和組織都在使用Qt進行各種類型應(yīng)用程序的開發(fā)。歷史及應(yīng)用在桌面應(yīng)用領(lǐng)域,下面這些著名的軟件都用到了Qt。(1)Maya,由Autodesk公司出品的優(yōu)秀三維動畫制作軟件。2011版開始使用Qt進行開發(fā)。(2)WPSOffice,是由金山軟件股份有限公司自主研發(fā)的一款辦公軟件套裝,可以實現(xiàn)辦公軟件最常用的文字、表格、演示,PDF閱讀等多種功能。(3)VirtualBox,是運行在x86上的一款虛擬機軟件,目前屬于Oracle公司。運行該軟件的操作系統(tǒng)被稱為主操作系統(tǒng)。該軟件運行時,向用戶呈現(xiàn)一個虛擬的計算機,用戶可以在這個虛擬計算機上安裝一個從屬操作系統(tǒng)。版本與特點Qt的發(fā)行版本分為商業(yè)版和開源版。商業(yè)版提供給用戶進行商業(yè)軟件開發(fā),它是一個傳統(tǒng)的商業(yè)軟件,并提供協(xié)議有效期內(nèi)的免費升級和技術(shù)支持服務(wù);Qt開源版是為了開發(fā)自由而設(shè)計的開放源碼軟件,它提供了和商業(yè)版本基本相同的功能,在GNU通用公共許可證下免費供用戶使用。經(jīng)過二十多年的發(fā)展與進步,Qt的版本已經(jīng)從Qt5更新到了Qt6。本教材使用Qt6.2.1LTS,它是Qt6的第1個長期支持(LTS,longtermsupported)版本。版本與特點Qt的主要特點:(1)跨平臺Qt支持PC和服務(wù)器的平臺,包括Windows、Linux和macOS等,還支持移動和嵌入式操作系統(tǒng),如iOS、EmbeddedLinux、Android和WinRT等。跨平臺意味著只需要編寫一次程序,在不同平臺上無需改動或只需少許改動后再編譯,就可以形成在不同平臺上運行的版本。這種跨平臺特性為開發(fā)者提供了極大的便利。版本與特點(2)面向?qū)ο驫t的良好封裝機制使得Qt的模塊化程度非常高,可重用性好,對于用戶開發(fā)來說是非常方便的。另外,Qt提供了一種稱為signal/slot(信號/槽)的通信機制,這使得各個元件之間的協(xié)同工作變得更為簡單安全。(2)豐富的API
Qt包括多達300多個C++類,除了用于用戶界面開發(fā),還可用于文件操作、數(shù)據(jù)庫處理、2D/3D圖形渲染、多媒體操作和網(wǎng)絡(luò)通信等。1.2開發(fā)環(huán)境搭建Qt應(yīng)用開發(fā)一般都使用集成開發(fā)環(huán)境。目前,支持Qt應(yīng)用開發(fā)的集成工具有很多,其中能夠跨平臺使用的主要有QtCreator、QDevelop、Eclipse、MonkeyStudio和Code::Blocks等。除此之外,還有在X11平臺上使用的Kdevelop,在Windows平臺上使用的MicrosoftVisualStudio,以及在Mac平臺上使用的Xcode等。下載與安裝1、下載與Qt5版本不同的是,Qt6只能使用在線安裝器進行安裝。下載Qt的軟件安裝器有多種途徑,可以到Qt的官方網(wǎng)站上進行下載,其網(wǎng)址為:https://www.qt.io/download也可以使用國內(nèi)的Qt鏡像網(wǎng)址或者一些其他的軟件資源下載平臺。建議使用清華大學(xué)開源軟件鏡像網(wǎng)站下載Qt的在線安裝器。其網(wǎng)址為:/qt/official_releases/online_installers/下載與安裝2、安裝運行Qt軟件安裝器,根據(jù)向?qū)崾据斎胂鄳?yīng)的信息。注意Qt組件選擇(SelectComponense)這個步驟,其界面如圖所示。這是Qt安裝中非常重要的一個步驟,建議優(yōu)先安裝Qt的基礎(chǔ)組件,待開發(fā)過程中根據(jù)應(yīng)用程序業(yè)務(wù)邏輯的實際需要,再進行有針對性的補充。另外,除了安裝Qt庫之外,還需要安裝QtCreator等開發(fā)和設(shè)計工具。如圖所示集成開發(fā)工具本教材使用QtCreator集成開發(fā)工具進行Qt應(yīng)用程序的開發(fā),版本為5.0.2。QtCreator是Qt官方推出的一款跨平臺開源集成開發(fā)工具,具有界面簡潔、操作方便、與Qt結(jié)合完美等特點。其界面如下圖所示。菜單欄模式選擇器構(gòu)建套件選擇器定位器輸出窗格QtCreator界面編輯模式項目視圖類視圖代碼編輯窗口QtCreator集成開發(fā)環(huán)境的設(shè)置:通過“Tools|Options”菜單命令打開的“Options”窗口來完成。如圖所示QtCreator設(shè)置【例1.1】編寫一個基于Qt的HelloWorld程序。程序運行后,在窗口中顯示“HelloWorld”字符串,運行結(jié)果如下圖所示。QtCreator應(yīng)用(1)啟動QtCreator開發(fā)工具,選擇File|NewFileorProject菜單命令,或者單擊Welcome模式中的Projects+New按鈕,打開“NewProject”對話框。(2)在“NewProject”對話框中選擇Application(Qt)中的QtWidgetsApplication項目模板,單擊“Choose…”按鈕,打開Qt應(yīng)用程序創(chuàng)建向?qū)А?3)設(shè)置項目名稱為“examp1_1”,指定項目存放位置為“F:\chap01”
(4)選擇默認的qmake項目構(gòu)建系統(tǒng)(5)選擇QWidget基類,其他使用系統(tǒng)默認值(6)本項目不使用其他語言(7)選擇項目的構(gòu)建套件,這里使用DesktopQt6.2.1MinGW64-bit(8)不向項目中添加其他子項目,也不設(shè)置版本控制。單擊“Finish”按鈕,完成項目(9)展開“Projects”窗口中項目名稱節(jié)點下的“Forms”分組,雙擊該分組中的widget.ui窗體界面文件,打開QtDesigner界面設(shè)計器,對應(yīng)用程序主窗口界面進行可視化設(shè)計。(10)點擊窗體,設(shè)置其大小(WidthxHeight)為320x240;窗體標(biāo)題(windowTitle)為“例1.1”。(11)在窗體中設(shè)置Label控件和PushButton控件,分別用來顯示字符串和執(zhí)行窗口關(guān)閉命令。在窗體中設(shè)置控件,直接用鼠標(biāo)將控件從控件箱拖動到窗口中的適當(dāng)位置即可。(12)分別點擊窗體中的Label控件和PushButton控件,將其text屬性分別設(shè)置為“HelloWorld”和“退出”。(13)保存文件,單擊QtCreator左邊欄中的Run按鈕,構(gòu)建并運行應(yīng)用程序(14)再次打開窗體設(shè)計器,按快捷鍵F4將窗體的編輯狀態(tài)切換成“EditSignalsandSlots”,選擇“退出”按鈕并拖動鼠標(biāo)至窗體中,彈出“ConfigureConnection”對話框(15)保存文件,再次單擊QtCreator左邊欄中的“Run”按鈕,運行應(yīng)用程序。此時,若單擊主窗口中的“退出”按鈕,應(yīng)用程序主窗口會隨即關(guān)閉。1.3程序設(shè)計方式搭建好Qt開發(fā)環(huán)境后,就可以開始進行Qt應(yīng)用程序的開發(fā)了。Qt應(yīng)用程序的開發(fā)可以采用3種程序設(shè)計方式,即可視化設(shè)計方式、代碼化設(shè)計方式和混合式設(shè)計方式??梢暬O(shè)計1、可視化設(shè)計所謂可視化設(shè)計方式,就是應(yīng)用程序框架通過向?qū)ё詣由桑缓笫褂肣tDesigner設(shè)計器進行窗體界面布局設(shè)計、Action設(shè)計,以及信號和槽的添加等操作。例如,上述例1.1應(yīng)用程序的開發(fā)所采用的就是可視化設(shè)計方法?!纠?.2】重新編寫例1.1中的HelloWorld應(yīng)用程序,將應(yīng)用程序主窗口基類設(shè)置為QDialog,并使主窗口中的字符串和按鈕控件均水平居中對齊。運行結(jié)果如圖所示。(1)打開QtCreator開發(fā)工具,生成一個名為examp1_2的Qt應(yīng)用程序,并將主窗口標(biāo)題設(shè)置為“例1.2”。操作方法如例1.1所示。(2)在窗體中設(shè)置Label控件和PushButton控件,并添加3個VerticalSpacer控件,對象名稱使用默認值(3)選擇主窗口中的全部控件,單擊工具欄中的“垂直布局管理器”圖標(biāo),在主窗口中添加一個VerticalLayout控件,對象名稱使用默認值,并調(diào)整其大小(4)分別選擇Label控件和PushButton控件,在屬性窗口中設(shè)置其text屬性值分別為“HelloWorld”和“退出”,并通過右鍵菜單設(shè)置其水平居中對齊(5)實現(xiàn)“退出”按鈕的單擊功能。單擊“SignalsandSlotsEditer”窗口中的“+”按鈕,添加一個新的信號與槽。設(shè)置Sender、Signal、Receiver和Slot分別為pushButton、clicked()、Dialog和close()
(6)保存文件,單擊QtCreator左邊欄中的“Run”按鈕,運行應(yīng)用程序。單擊主窗口中的“退出”按鈕,主窗口隨即關(guān)閉。2、代碼化設(shè)計所謂代碼化設(shè)計方法,就是應(yīng)用程序的所有代碼均手工添加完成,而不使用QtDesigner等設(shè)計工具。代碼化設(shè)計【例1.3】使用手工編碼的方式,完成例1.2程序功能。(1)打開QtCreator開發(fā)工具,選擇“Projects”下的“OtherProject”模板中的“EmptyqmakeProject”模板,生成一個名為examp1_3的空Qt應(yīng)用程序。(2)雙擊打開應(yīng)用程序的項目文件“examp1_3.pro”,在文件中添加如下文本行,將Qt的Widgets模塊加載到項目中。QT+=widgets(3)右擊新生成的項目文件夾examp1_3,在彈出的快捷菜單中選擇“AddNew…”菜單命令,打開“新文件”對話框。向項目中添加一個名為“main.cpp”的C++源文件。(4)雙擊打開main.cpp文件,在文件中添加代碼,實現(xiàn)程序功能。創(chuàng)建主窗口對象,并設(shè)置其屬性創(chuàng)建主窗口中的控件對象,并設(shè)置其屬性創(chuàng)建主窗口的垂直布局,并設(shè)置控件信號與槽(5)單擊QtCreator中的“運行”按鈕,即可得到程序的運行結(jié)果。如圖1.40所示。單擊對話框中的“退出”按鈕,即可關(guān)閉程序的主對話框。3、混合式設(shè)計使用可視化設(shè)計方法開發(fā)Qt應(yīng)用程序,不需要人工編寫代碼去處理大量繁瑣的界面組件的創(chuàng)建和布局管理工作,可以直觀地進行界面設(shè)計,從而大大提高了應(yīng)用程序開發(fā)的工作效率。但該設(shè)計方法也存在一些缺陷,如某些組件無法可視化地添加到界面上,此時就必須手工編寫代碼來實現(xiàn)相應(yīng)的部件功能。采用純代碼方式進行Qt應(yīng)用程序開發(fā),能夠設(shè)計出非常精美的用戶界面,并且可以實現(xiàn)非常復(fù)雜的業(yè)務(wù)邏輯。但是設(shè)計效率太低,過程也非常的繁瑣。因此,在實際的開發(fā)過程中,常常使用混合的設(shè)計方法,能夠使用可視化設(shè)計的就盡可能可視化設(shè)計解決,無法可視化實現(xiàn)的再用純代碼的方法解決?;旌鲜皆O(shè)計【例1.4】使用混合式設(shè)計方法,實現(xiàn)例1.2的程序功能。要求在“退出”按鈕上添加菜單,當(dāng)選擇菜單中的“確定”命令時,關(guān)閉應(yīng)用程序主窗口。如圖所示。(1)打開QtCreator開發(fā)工具,生成一個名為examp1_4的Qt應(yīng)用程序。將主窗口標(biāo)題設(shè)置為“例1.4”,并按照例1.1的操作步驟,向主窗口中添加控件及布局管理器。這里采用可視化程序設(shè)計方法完成應(yīng)用程序框架的生成與主窗口界面的設(shè)計。(2)編寫代碼,實現(xiàn)新增功能。由于在QtDesigner中不能直接將菜單放置在“退出”按鈕控件上,所以必須采用代碼化方式來實現(xiàn)相關(guān)的界面功能。(3)保存文件,構(gòu)建并運行應(yīng)用程序。單擊“退出”按鈕,彈出按鈕菜單,選擇“確定”菜單命令,應(yīng)用程序主窗口隨即關(guān)閉。1.4項目結(jié)構(gòu)分析Qt應(yīng)用程序一般都包含有多個文件,這些相關(guān)聯(lián)的文件被組織在一起,以“項目”的形式進行統(tǒng)一管理。下面以例1.1創(chuàng)建的程序為例,簡要分析一下Qt應(yīng)用程序項目的文件類型、作用,以及程序的運行機制。1、項目文件組成在QtCreator中打開例1.1中的Qt項目examp1_1,切換到“Edit”模式,展開項目視圖中的各個文件分組。如圖所示。項目文件組成從圖中可以看到,項目examp1_1包含4種類型的文件,分別是項目文件examp1_1.pro、主函數(shù)文件main.cpp、類文件widget.h/widget.cpp和界面文件widget.ui。項目文件用于項目管理,包括項目設(shè)置、使用的Qt模塊、包含的文件等信息;主函數(shù)文件是實現(xiàn)main()函數(shù)的文件,main()函數(shù)是C++應(yīng)用程序入口函數(shù),其主要功能是創(chuàng)建應(yīng)用程序、創(chuàng)建窗口、顯示窗口、運行程序、啟動應(yīng)用程序的消息循環(huán)和事件處理;類文件包括項目中類的聲明及實現(xiàn)文件;界面文件是使用QtDesigner進行界面設(shè)計生成的文件,它實際上就是一個XML文件,用于管理界面中的窗體、部件、信號/槽等信息。需要注意的是,Qt項目中的界面文件在項目構(gòu)建后將被轉(zhuǎn)換成類文件。展開項目examp1_1構(gòu)建生成的文件夾build-examp1_1-Desktop_Qt_6_2_1_MinGW_64_bit-Debu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)系統(tǒng)中的能量流動與轉(zhuǎn)換試題及答案
- 2024年CPMM時間規(guī)劃試題及答案
- 傳染病院感防控課件
- 人類自身基因組與健康的關(guān)系試題及答案
- 2025年強振加速度儀合作協(xié)議書
- 出血熱培訓(xùn)知識課件
- 關(guān)于2024年CPMM的試題及答案
- 自我提升與國際物流師試題及答案
- 2024年CPMM深入學(xué)習(xí)試題及答案
- 2024年CPMM成功秘訣試題及答案
- 胸腔閉式引流護理技術(shù)操作流程及評分標(biāo)準(zhǔn)(參考模板)
- 社會責(zé)任法規(guī)合規(guī)性評價檢查表
- 個人汽車押車合同范本
- 2023年R1快開門式壓力容器操作考試題庫及R1快開門式壓力容器操作考試100題(含答案)
- 我國光伏標(biāo)準(zhǔn)體系及發(fā)展建議
- 吉塔行星模擬課程
- 山東省聊城市高一上學(xué)期期末考試政治試題WORD版含答案
- 企業(yè)財務(wù)會計(第五版)同步訓(xùn)練參考答案 第四章
- 湖北省鄂東南省級示范教學(xué)改革聯(lián)盟學(xué)校2022-2023學(xué)年高一下學(xué)期期中聯(lián)考數(shù)學(xué)試題及答案
- 社會工作師職業(yè)資格考試
- GB/T 39287-2020閉式膨脹罐
評論
0/150
提交評論