Qt 6.2C++程序設(shè)計(jì)與桌面應(yīng)用開發(fā) 思政課件 第1章 初識(shí)Qt框架_第1頁
Qt 6.2C++程序設(shè)計(jì)與桌面應(yīng)用開發(fā) 思政課件 第1章 初識(shí)Qt框架_第2頁
Qt 6.2C++程序設(shè)計(jì)與桌面應(yīng)用開發(fā) 思政課件 第1章 初識(shí)Qt框架_第3頁
Qt 6.2C++程序設(shè)計(jì)與桌面應(yīng)用開發(fā) 思政課件 第1章 初識(shí)Qt框架_第4頁
Qt 6.2C++程序設(shè)計(jì)與桌面應(yīng)用開發(fā) 思政課件 第1章 初識(shí)Qt框架_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Qt6.2/C++程序設(shè)計(jì)與桌面應(yīng)用開發(fā)21世紀(jì)高等學(xué)校計(jì)算機(jī)類課程創(chuàng)新規(guī)劃教材–微課視頻版教材目錄第1章初識(shí)Qt框架第2章Qt開發(fā)基礎(chǔ)第3章界面設(shè)計(jì)組件第4章主框架窗口第5章對(duì)話框設(shè)計(jì)第6章事件系統(tǒng)第7章文件與數(shù)據(jù)庫第8章模型/視圖結(jié)構(gòu)第9章圖形繪制第10章多媒體編程第11章網(wǎng)絡(luò)編程第12章進(jìn)程與線程教材目錄第1章初識(shí)Qt框架1.1Qt簡(jiǎn)介1.2開發(fā)環(huán)境搭建1.3程序設(shè)計(jì)方式1.4項(xiàng)目結(jié)構(gòu)分析1.1Qt簡(jiǎn)介Qt是一個(gè)基于C++面向?qū)ο蟪绦蛟O(shè)計(jì)語言、功能全面、跨平臺(tái)的圖形用戶界面(GUI)應(yīng)用程序框架。它提供了一種高效的、真正基于組件編程模式的應(yīng)用程序設(shè)計(jì)解決方案。Qt實(shí)際上就是一套C++應(yīng)用程序開發(fā)類庫,與MicrosoftMFC類似。歷史及應(yīng)用1、發(fā)展歷程Qt由挪威Trolltech(奇趣科技)公司于1991年開發(fā),在2008年,Trolltech公司被諾基亞公司收購(gòu),Qt也因此成為諾基亞旗下的編程語言工具。2012年,芬蘭的Digia公司完成對(duì)諾基亞公司Qt技術(shù)平臺(tái)和知識(shí)產(chǎn)權(quán)的收購(gòu),Qt由此歸屬于Digia公司。2014年,Digia成立獨(dú)立的Qt公司,專門負(fù)責(zé)Qt的開發(fā)、維護(hù)和商業(yè)推廣。歷史及應(yīng)用2、應(yīng)用實(shí)例自1995年以來,Qt逐步進(jìn)入商業(yè)領(lǐng)域,已成為數(shù)以萬計(jì)商業(yè)和開源應(yīng)用程序的基礎(chǔ)。QtC++框架一直都是商業(yè)應(yīng)用程序的核心,無論是跨國(guó)公司和大型組織,如Adobe、Boeing、Google、IBM、Motorola、NASA、Skype等,還是無數(shù)小型公司和組織都在使用Qt進(jìn)行各種類型應(yīng)用程序的開發(fā)。歷史及應(yīng)用在桌面應(yīng)用領(lǐng)域,下面這些著名的軟件都用到了Qt。(1)Maya,由Autodesk公司出品的優(yōu)秀三維動(dòng)畫制作軟件。2011版開始使用Qt進(jìn)行開發(fā)。(2)WPSOffice,是由金山軟件股份有限公司自主研發(fā)的一款辦公軟件套裝,可以實(shí)現(xiàn)辦公軟件最常用的文字、表格、演示,PDF閱讀等多種功能。(3)VirtualBox,是運(yùn)行在x86上的一款虛擬機(jī)軟件,目前屬于Oracle公司。運(yùn)行該軟件的操作系統(tǒng)被稱為主操作系統(tǒng)。該軟件運(yùn)行時(shí),向用戶呈現(xiàn)一個(gè)虛擬的計(jì)算機(jī),用戶可以在這個(gè)虛擬計(jì)算機(jī)上安裝一個(gè)從屬操作系統(tǒng)。版本與特點(diǎn)Qt的發(fā)行版本分為商業(yè)版和開源版。商業(yè)版提供給用戶進(jìn)行商業(yè)軟件開發(fā),它是一個(gè)傳統(tǒng)的商業(yè)軟件,并提供協(xié)議有效期內(nèi)的免費(fèi)升級(jí)和技術(shù)支持服務(wù);Qt開源版是為了開發(fā)自由而設(shè)計(jì)的開放源碼軟件,它提供了和商業(yè)版本基本相同的功能,在GNU通用公共許可證下免費(fèi)供用戶使用。經(jīng)過二十多年的發(fā)展與進(jìn)步,Qt的版本已經(jīng)從Qt5更新到了Qt6。本教材使用Qt6.2.1LTS,它是Qt6的第1個(gè)長(zhǎng)期支持(LTS,longtermsupported)版本。版本與特點(diǎn)Qt的主要特點(diǎn):(1)跨平臺(tái)Qt支持PC和服務(wù)器的平臺(tái),包括Windows、Linux和macOS等,還支持移動(dòng)和嵌入式操作系統(tǒng),如iOS、EmbeddedLinux、Android和WinRT等??缙脚_(tái)意味著只需要編寫一次程序,在不同平臺(tái)上無需改動(dòng)或只需少許改動(dòng)后再編譯,就可以形成在不同平臺(tái)上運(yùn)行的版本。這種跨平臺(tái)特性為開發(fā)者提供了極大的便利。版本與特點(diǎn)(2)面向?qū)ο驫t的良好封裝機(jī)制使得Qt的模塊化程度非常高,可重用性好,對(duì)于用戶開發(fā)來說是非常方便的。另外,Qt提供了一種稱為signal/slot(信號(hào)/槽)的通信機(jī)制,這使得各個(gè)元件之間的協(xié)同工作變得更為簡(jiǎn)單安全。(2)豐富的API

Qt包括多達(dá)300多個(gè)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ā)的集成工具有很多,其中能夠跨平臺(tái)使用的主要有QtCreator、QDevelop、Eclipse、MonkeyStudio和Code::Blocks等。除此之外,還有在X11平臺(tái)上使用的Kdevelop,在Windows平臺(tái)上使用的MicrosoftVisualStudio,以及在Mac平臺(tái)上使用的Xcode等。下載與安裝1、下載與Qt5版本不同的是,Qt6只能使用在線安裝器進(jìn)行安裝。下載Qt的軟件安裝器有多種途徑,可以到Qt的官方網(wǎng)站上進(jìn)行下載,其網(wǎng)址為:https://www.qt.io/download也可以使用國(guó)內(nèi)的Qt鏡像網(wǎng)址或者一些其他的軟件資源下載平臺(tái)。建議使用清華大學(xué)開源軟件鏡像網(wǎng)站下載Qt的在線安裝器。其網(wǎng)址為:/qt/official_releases/online_installers/下載與安裝2、安裝運(yùn)行Qt軟件安裝器,根據(jù)向?qū)崾据斎胂鄳?yīng)的信息。注意Qt組件選擇(SelectComponense)這個(gè)步驟,其界面如圖所示。這是Qt安裝中非常重要的一個(gè)步驟,建議優(yōu)先安裝Qt的基礎(chǔ)組件,待開發(fā)過程中根據(jù)應(yīng)用程序業(yè)務(wù)邏輯的實(shí)際需要,再進(jìn)行有針對(duì)性的補(bǔ)充。另外,除了安裝Qt庫之外,還需要安裝QtCreator等開發(fā)和設(shè)計(jì)工具。如圖所示集成開發(fā)工具本教材使用QtCreator集成開發(fā)工具進(jìn)行Qt應(yīng)用程序的開發(fā),版本為5.0.2。QtCreator是Qt官方推出的一款跨平臺(tái)開源集成開發(fā)工具,具有界面簡(jiǎn)潔、操作方便、與Qt結(jié)合完美等特點(diǎn)。其界面如下圖所示。菜單欄模式選擇器構(gòu)建套件選擇器定位器輸出窗格QtCreator界面編輯模式項(xiàng)目視圖類視圖代碼編輯窗口QtCreator集成開發(fā)環(huán)境的設(shè)置:通過“Tools|Options”菜單命令打開的“Options”窗口來完成。如圖所示QtCreator設(shè)置【例1.1】編寫一個(gè)基于Qt的HelloWorld程序。程序運(yùn)行后,在窗口中顯示“HelloWorld”字符串,運(yùn)行結(jié)果如下圖所示。QtCreator應(yīng)用(1)啟動(dòng)QtCreator開發(fā)工具,選擇File|NewFileorProject菜單命令,或者單擊Welcome模式中的Projects+New按鈕,打開“NewProject”對(duì)話框。(2)在“NewProject”對(duì)話框中選擇Application(Qt)中的QtWidgetsApplication項(xiàng)目模板,單擊“Choose…”按鈕,打開Qt應(yīng)用程序創(chuàng)建向?qū)А?3)設(shè)置項(xiàng)目名稱為“examp1_1”,指定項(xiàng)目存放位置為“F:\chap01”

(4)選擇默認(rèn)的qmake項(xiàng)目構(gòu)建系統(tǒng)(5)選擇QWidget基類,其他使用系統(tǒng)默認(rèn)值(6)本項(xiàng)目不使用其他語言(7)選擇項(xiàng)目的構(gòu)建套件,這里使用DesktopQt6.2.1MinGW64-bit(8)不向項(xiàng)目中添加其他子項(xiàng)目,也不設(shè)置版本控制。單擊“Finish”按鈕,完成項(xiàng)目(9)展開“Projects”窗口中項(xiàng)目名稱節(jié)點(diǎn)下的“Forms”分組,雙擊該分組中的widget.ui窗體界面文件,打開QtDesigner界面設(shè)計(jì)器,對(duì)應(yīng)用程序主窗口界面進(jìn)行可視化設(shè)計(jì)。(10)點(diǎn)擊窗體,設(shè)置其大小(WidthxHeight)為320x240;窗體標(biāo)題(windowTitle)為“例1.1”。(11)在窗體中設(shè)置Label控件和PushButton控件,分別用來顯示字符串和執(zhí)行窗口關(guān)閉命令。在窗體中設(shè)置控件,直接用鼠標(biāo)將控件從控件箱拖動(dòng)到窗口中的適當(dāng)位置即可。(12)分別點(diǎn)擊窗體中的Label控件和PushButton控件,將其text屬性分別設(shè)置為“HelloWorld”和“退出”。(13)保存文件,單擊QtCreator左邊欄中的Run按鈕,構(gòu)建并運(yùn)行應(yīng)用程序(14)再次打開窗體設(shè)計(jì)器,按快捷鍵F4將窗體的編輯狀態(tài)切換成“EditSignalsandSlots”,選擇“退出”按鈕并拖動(dòng)鼠標(biāo)至窗體中,彈出“ConfigureConnection”對(duì)話框(15)保存文件,再次單擊QtCreator左邊欄中的“Run”按鈕,運(yùn)行應(yīng)用程序。此時(shí),若單擊主窗口中的“退出”按鈕,應(yīng)用程序主窗口會(huì)隨即關(guān)閉。1.3程序設(shè)計(jì)方式搭建好Qt開發(fā)環(huán)境后,就可以開始進(jìn)行Qt應(yīng)用程序的開發(fā)了。Qt應(yīng)用程序的開發(fā)可以采用3種程序設(shè)計(jì)方式,即可視化設(shè)計(jì)方式、代碼化設(shè)計(jì)方式和混合式設(shè)計(jì)方式??梢暬O(shè)計(jì)1、可視化設(shè)計(jì)所謂可視化設(shè)計(jì)方式,就是應(yīng)用程序框架通過向?qū)ё詣?dòng)生成,然后使用QtDesigner設(shè)計(jì)器進(jìn)行窗體界面布局設(shè)計(jì)、Action設(shè)計(jì),以及信號(hào)和槽的添加等操作。例如,上述例1.1應(yīng)用程序的開發(fā)所采用的就是可視化設(shè)計(jì)方法。【例1.2】重新編寫例1.1中的HelloWorld應(yīng)用程序,將應(yīng)用程序主窗口基類設(shè)置為QDialog,并使主窗口中的字符串和按鈕控件均水平居中對(duì)齊。運(yùn)行結(jié)果如圖所示。(1)打開QtCreator開發(fā)工具,生成一個(gè)名為examp1_2的Qt應(yīng)用程序,并將主窗口標(biāo)題設(shè)置為“例1.2”。操作方法如例1.1所示。(2)在窗體中設(shè)置Label控件和PushButton控件,并添加3個(gè)VerticalSpacer控件,對(duì)象名稱使用默認(rèn)值(3)選擇主窗口中的全部控件,單擊工具欄中的“垂直布局管理器”圖標(biāo),在主窗口中添加一個(gè)VerticalLayout控件,對(duì)象名稱使用默認(rèn)值,并調(diào)整其大小(4)分別選擇Label控件和PushButton控件,在屬性窗口中設(shè)置其text屬性值分別為“HelloWorld”和“退出”,并通過右鍵菜單設(shè)置其水平居中對(duì)齊(5)實(shí)現(xiàn)“退出”按鈕的單擊功能。單擊“SignalsandSlotsEditer”窗口中的“+”按鈕,添加一個(gè)新的信號(hào)與槽。設(shè)置Sender、Signal、Receiver和Slot分別為pushButton、clicked()、Dialog和close()

(6)保存文件,單擊QtCreator左邊欄中的“Run”按鈕,運(yùn)行應(yīng)用程序。單擊主窗口中的“退出”按鈕,主窗口隨即關(guān)閉。2、代碼化設(shè)計(jì)所謂代碼化設(shè)計(jì)方法,就是應(yīng)用程序的所有代碼均手工添加完成,而不使用QtDesigner等設(shè)計(jì)工具。代碼化設(shè)計(jì)【例1.3】使用手工編碼的方式,完成例1.2程序功能。(1)打開QtCreator開發(fā)工具,選擇“Projects”下的“OtherProject”模板中的“EmptyqmakeProject”模板,生成一個(gè)名為examp1_3的空Qt應(yīng)用程序。(2)雙擊打開應(yīng)用程序的項(xiàng)目文件“examp1_3.pro”,在文件中添加如下文本行,將Qt的Widgets模塊加載到項(xiàng)目中。QT+=widgets(3)右擊新生成的項(xiàng)目文件夾examp1_3,在彈出的快捷菜單中選擇“AddNew…”菜單命令,打開“新文件”對(duì)話框。向項(xiàng)目中添加一個(gè)名為“main.cpp”的C++源文件。(4)雙擊打開main.cpp文件,在文件中添加代碼,實(shí)現(xiàn)程序功能。創(chuàng)建主窗口對(duì)象,并設(shè)置其屬性創(chuàng)建主窗口中的控件對(duì)象,并設(shè)置其屬性創(chuàng)建主窗口的垂直布局,并設(shè)置控件信號(hào)與槽(5)單擊QtCreator中的“運(yùn)行”按鈕,即可得到程序的運(yùn)行結(jié)果。如圖1.40所示。單擊對(duì)話框中的“退出”按鈕,即可關(guān)閉程序的主對(duì)話框。3、混合式設(shè)計(jì)使用可視化設(shè)計(jì)方法開發(fā)Qt應(yīng)用程序,不需要人工編寫代碼去處理大量繁瑣的界面組件的創(chuàng)建和布局管理工作,可以直觀地進(jìn)行界面設(shè)計(jì),從而大大提高了應(yīng)用程序開發(fā)的工作效率。但該設(shè)計(jì)方法也存在一些缺陷,如某些組件無法可視化地添加到界面上,此時(shí)就必須手工編寫代碼來實(shí)現(xiàn)相應(yīng)的部件功能。采用純代碼方式進(jìn)行Qt應(yīng)用程序開發(fā),能夠設(shè)計(jì)出非常精美的用戶界面,并且可以實(shí)現(xiàn)非常復(fù)雜的業(yè)務(wù)邏輯。但是設(shè)計(jì)效率太低,過程也非常的繁瑣。因此,在實(shí)際的開發(fā)過程中,常常使用混合的設(shè)計(jì)方法,能夠使用可視化設(shè)計(jì)的就盡可能可視化設(shè)計(jì)解決,無法可視化實(shí)現(xiàn)的再用純代碼的方法解決。混合式設(shè)計(jì)【例1.4】使用混合式設(shè)計(jì)方法,實(shí)現(xiàn)例1.2的程序功能。要求在“退出”按鈕上添加菜單,當(dāng)選擇菜單中的“確定”命令時(shí),關(guān)閉應(yīng)用程序主窗口。如圖所示。(1)打開QtCreator開發(fā)工具,生成一個(gè)名為examp1_4的Qt應(yīng)用程序。將主窗口標(biāo)題設(shè)置為“例1.4”,并按照例1.1的操作步驟,向主窗口中添加控件及布局管理器。這里采用可視化程序設(shè)計(jì)方法完成應(yīng)用程序框架的生成與主窗口界面的設(shè)計(jì)。(2)編寫代碼,實(shí)現(xiàn)新增功能。由于在QtDesigner中不能直接將菜單放置在“退出”按鈕控件上,所以必須采用代碼化方式來實(shí)現(xiàn)相關(guān)的界面功能。(3)保存文件,構(gòu)建并運(yùn)行應(yīng)用程序。單擊“退出”按鈕,彈出按鈕菜單,選擇“確定”菜單命令,應(yīng)用程序主窗口隨即關(guān)閉。1.4項(xiàng)目結(jié)構(gòu)分析Qt應(yīng)用程序一般都包含有多個(gè)文件,這些相關(guān)聯(lián)的文件被組織在一起,以“項(xiàng)目”的形式進(jìn)行統(tǒng)一管理。下面以例1.1創(chuàng)建的程序?yàn)槔?jiǎn)要分析一下Qt應(yīng)用程序項(xiàng)目的文件類型、作用,以及程序的運(yùn)行機(jī)制。1、項(xiàng)目文件組成在QtCreator中打開例1.1中的Qt項(xiàng)目examp1_1,切換到“Edit”模式,展開項(xiàng)目視圖中的各個(gè)文件分組。如圖所示。項(xiàng)目文件組成從圖中可以看到,項(xiàng)目examp1_1包含4種類型的文件,分別是項(xiàng)目文件examp1_1.pro、主函數(shù)文件main.cpp、類文件widget.h/widget.cpp和界面文件widget.ui。項(xiàng)目文件用于項(xiàng)目管理,包括項(xiàng)目設(shè)置、使用的Qt模塊、包含的文件等信息;主函數(shù)文件是實(shí)現(xiàn)main()函數(shù)的文件,main()函數(shù)是C++應(yīng)用程序入口函數(shù),其主要功能是創(chuàng)建應(yīng)用程序、創(chuàng)建窗口、顯示窗口、運(yùn)行程序、啟動(dòng)應(yīng)用程序的消息循環(huán)和事件處理;類文件包括項(xiàng)目中類的聲明及實(shí)現(xiàn)文件;界面文件是使用QtDesigner進(jìn)行界面設(shè)計(jì)生成的文件,它實(shí)際上就是一個(gè)XML文件,用于管理界面中的窗體、部件、信號(hào)/槽等信息。需要注意的是,Qt項(xiàng)目中的界面文件在項(xiàng)目構(gòu)建后將被轉(zhuǎn)換成類文件。展開項(xiàng)目examp1_1構(gòu)建生成的文件夾build-examp1_1-Desktop_Qt_6_2_1_MinGW_64_bit-Debu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論