編輯推薦
Qt圖形界麵編程經典入門教材,麵嚮基礎,注重實踐,簡單實用、步驟詳盡,適閤少學時和翻轉課堂教學模式下引導學生自我學習,被多所高校用作教材。
內容簡介
本書著重講解利用Qt開發圖形界麵程序的基礎知識。全書共10章,主要內容包括C++語言中麵嚮對象的知識、集成開發環境Qt Creator、基本窗體控件、菜單和工具欄、對話框、界麵布局、事件係統、二維繪圖、樣式錶等方麵的內容。基本覆蓋瞭利用C++語言在Qt開發平颱下開發窗口界麵的知識。第10章給齣3個比較大的範例,建議先自己思考並編寫程序,而後和本書例程對照,從而更有效地提高編程水平。本書講述力求簡單實用、步驟詳盡,非常適閤課堂講解少而練習時間多的授課方式,也適閤在翻轉課堂教學模式下引導學生自我學習。本書要求讀者具有C語言編程基礎,在此基礎上即可順利地學習本書內容。建議共安排48學時,其中,24學時授課,24學時上機練習。
本書適閤作為高校相關專業教材,也可供軟件開發人員自學參考。
精彩書摘
第3章初識Qt開發框架3.1Qt的曆史淵源
Qt是1991年由挪威的奇趣科技(Trolltech)公司開發的跨平颱C++圖形用戶界麵(GUI)應用程序開發框架。2008年,奇趣科技公司被諾基亞公司收購,Qt也因此成為諾基亞公司旗下的編程語言工具,曾稱霸一時的Symbian手機操作係統就是基於Qt開發的。2012年,Qt被芬蘭軟件公司Digia收購。
Qt最早在Linux係統上大放異彩,它是Linux著名的桌麵係統KDE的開發平颱。後來又被很多軟件公司用來開發重量級産品,其中包括三維動畫軟件Maya、辦公套件WPS、即時通信軟件Skype等。它既可以開發GUI程序,也可用於開發非GUI程序。
目前Qt在不同的行業中都取得瞭不小的成績,例如能源、醫療、軍工和國防、汽車、遊戲動畫和視覺效果、芯片、消費電子、工業自動化、計算機輔助設計和製造等。以華為公司、中石油公司為代錶的客戶已經說明瞭Qt實力的雄厚。
曆經二十多年不斷發展進步,Qt已經發展成為一個完善的C++開發框架,可以開發齣強大的、互動的並且獨立於平颱的應用程序。Qt的應用程序可以在本地桌麵、嵌入式和移動主機係統上運行,其具有的性能遠遠優於其他跨平颱的應用程序開發框架。
Qt具有下列突齣優點:
�r 優良的跨平颱特性。Qt支持的操作係統包括Microsoft Windows、Apple Mac OS X、Linux/X11,Embedded Linux、Windows Embedded、RTOS以及手機上的Android、IOS等。
�r 麵嚮對象。Qt的良好封裝機製使得Qt的模塊化程度非常高,可重用性較好,對於用戶開發來說是非常方便的。Qt提供瞭一種稱為signal/slot(信號/槽)的通信機製,這使得各個元件之間的協同工作變得更為簡單和安全。
�r 豐富的 API。Qt包括多達 250 個以上的C++類,除瞭用於用戶界麵開發,還可用於文件操作、數據庫處理、網絡通信、2D/3D圖形渲染、XML操作等。
3.2安裝Qt開發係統〖*4/5〗3.2.1Qt係統下載Qt係統可以在官方下載網站http://download.qt.io/archive或者中文的Qtcn開發網http://www.qtcn.org上下載。
本書采用的是qt.opensource.windows.x86.mingw482_opengl.5.3.2.exe軟件包,也就是Qt 5.3.2版本,其官方下載界麵如圖3.1所示。由於在Qt發展過程中,其結構有時會有較大變動,因此在本書學習過程中,請盡量選用Qt 5.3或更新的版本。
圖3.1Qt係統官方下載界麵
Qt本質上是一套C++類庫,用於編寫C++源程序。Qt本身沒有C++的編譯係統,而是采用開源的MinGW(基於gcc、gdb)或者微軟公司的msvc編譯係統。本書采用整閤MinGW的軟件包,該軟件包無須微軟公司的VC 2012或VC 2013開發環境的支持。圖3.2在Qt安裝界麵上選擇組件
在安裝過程中有一步是選擇組件,這時一定要將Tools中的MinGW 4.8.2選中,如圖3.2所示。另外,在選擇軟件授權協議的界麵,選擇LGPL協議(GNU寬通用公共許可證)即可。其他步驟可按默認方式操作。安裝完成後,Qt類庫、集成開發環境Qt Creator、官方例程以及MinGW係統就一並安裝好瞭。
3.2.2Qt Creator簡介
除瞭可以用手工方式編寫基於Qt的程序代碼,也可以使用官方開發的集成開發環境Qt Creator。Qt Creator提供瞭圖形化的界麵設計器Qt Designer,該工具提供瞭Qt基本的窗體部件,如QWidget(基本窗口)、QLabel(標簽)、QPushButton(按鈕)等,可以在設計器中通過鼠標直接拖曳這些窗口部件並將其布置到窗口界麵中,從而實現所見即所得的設計。
Qt Creator啓動界麵如圖3.3所示。它的中間部分是主窗口,上部是菜單欄,左側工具欄主要是模式選擇器和一些常用按鈕。
圖3.3Qt Creator啓動界麵
1. 菜單欄(Menu Bar)
菜單欄包括以下8個菜單。
�r “文件”菜單: 包含新建、打開、關閉項目和文件,打印文件和退齣等基本功能。
�r “編輯”菜單: 包含撤銷、剪切、復製、查找等常用功能,在高級菜單中還有標示空白符、摺疊代碼、改變字體大小等功能。
�r “構建”菜單: 包含構建和運行項目等相關的功能。
�r “調試”菜單: 包含調試程序等相關的功能。
�r “分析”菜單: 包含QML分析器、Valgrind內存分析器等功能菜單。QML是Qt開發團隊創立的一種腳本語言,可以通過描述的方式創建窗體程序。QML分析器可以分析一段腳本執行過程中齣現的問題。而Valgrind是一個免費的工具包,用來檢測程序運行時內存泄露、越界等問題。
�r “工具”菜單: 提供瞭快速定位菜單、版本控製工具菜單和界麵編輯器菜單等。其中的“選項”菜單中包含Qt Creator各個方麵的設置選項,包括環境設置、快捷鍵設置、編輯器設置、幫助設置、Qt版本設置、Qt設計師設置和版本控製設置等。
�r “控件”菜單: 包含設置窗口布局的一些菜單項,如全屏顯示和隱藏邊欄等。
�r “幫助”菜單: 包含Qt幫助、Qt Creator版本信息和插件管理等菜單項。
2. 模式選擇器( Mode Selector )
Qt Creator包含歡迎、編輯、設計、調試(Debug)、項目、分析和幫助6個模式,各個模式完成不同的功能。也可以使用快捷鍵來更換模式,對應的快捷鍵依次是Ctrl+1~6。下麵簡單介紹主要的幾種模式。
�r 編輯模式: 主要用來查看和編輯程序代碼,管理項目文件。Qt Creator的編輯器具有關鍵字特殊顔色顯示、代碼自動補全、聲明定義間快捷切換、函數原型提示、Fl鍵快速打開相關幫助和在項目中進行查找等功能。
�r 設計模式: 整閤瞭Qt設計師的功能。可以在這裏設計圖形界麵,進行部件屬性設置、信號和槽設置、布局設置等操作。
�r 調試模式: Qt Creator默認使用gdb進行調試,支持設置斷點、單步調試和遠程調試等功能,包含局部變量、監視器、斷點、綫程以及快照等查看窗口。
�r 項目模式: 包含對特定項目的構建設置、運行設置、編輯器設置和依賴關係等頁麵。構建設置中可以對項目的版本、使用Qt的版本和編譯步驟進行設置;編輯器設置中可以設置文件的默認編碼。
3. 常用按鈕
Qt Creator啓動界麵左下角包含目標選擇器、運行按鈕、調試按鈕和構建全部項目4個按鈕圖標。目標選擇器用來選擇要構建哪個平颱的項目,這對於多個Qt庫的項目很有用。還可以選擇編譯項目的debug版本或release版本。運行按鈕可以實現項目的構建和運行。調試按鈕可以進入調試模式。構建全部項目按鈕可以構建所有打開的項目。
3.3創建一個簡單程序
本節以手工編碼和圖形化操作方式建立兩個同樣的“Hello Qt!”程序。
注意: 在建立項目時,項目的路徑和名稱都不要使用中文。
3.3.1手工編碼方式
【例3.1】利用手工編碼方式建立“Hello Qt!”程序。
第1步,利用Qt Creator的菜單“文件→新建文件或項目”打開新建對話框,選擇“其他項目→空的Qt項目”建立一個名為3_1的工程。這時工程中除瞭名為3_1.pro工程文件外無任何其他文件。
第2步,再次打開新建對話框,選擇C++項目下的C++ Source File,添加一個C++源程序q1.cpp(名稱可以任取)。
第3步,單擊打開工程文件3_1.pro,在末尾行添加文字: QT +=widgets。這樣便可以在工程中使用可視化的部件。
第4步,在源程序q1.cpp中添加如下代碼: 1#include
2#include
3#include
4int main(int argc, char �砤rgv[])
5{
6QApplication a(argc,argv);
7QDialog w;
8QLabel label(&w;);
9label.setText("Hello Qt!");
10label.setGeometry(10,10,100,100);
11w.show();
12return a.exec();
13}圖3.4工程3_1運行界麵
至此,一個完整的Qt程序就完成瞭。單擊運行按鈕(圖標為,對應快捷方式為Ctrl+R鍵),即可得到圖3.4所示的窗體。
代碼說明:
第1~3行包含瞭頭文件。其中2、3兩行說明可使用對話框類和標簽類。
第4行是C++中的main函數,它有兩個參數,用來接收命令行參數。
第6行新建QApplication類對象,用於管理應用程序的各種設置,並執行事件處理工作,任何一個Qt GUI程序都要有一個QApplication對象。該對象需要argc和argv兩個參數。
第7行新建一個QDialog對象,實現一個對話框界麵。
第8行新建瞭標簽QLabel對象,並將QDialog對象w作為參數,錶明對話框w是它的父窗口,也就是說這個標簽放在對話框窗口中。
第9行給標簽設置要顯示的字符。
第10行設置標簽相對於對話框的位置和大小,使用瞭函數void setGeometry(int x,int y,int w,int h),其中x、y設置標簽在對話框中的坐標,w為寬,h為高。GUI控件都有這個函數。
第11行將對話框顯示齣來。在默認情況下,窗口部件對象是不可見的,要使用show函數讓它們顯示齣來。
第12行的exec函數讓QApplication對象進入事件循環,這樣Qt應用程序在運行時便可以接收産生的事件,例如鼠標單擊和鍵盤按下等事件。
3.3.2無UI的嚮導方式
所謂UI是指程序界麵描述文件,可用於可視化界麵設計。
【例3.2】利用無UI的應用程序嚮導建立“Hello Qt!”程序。
第1步,建立無UI的工程。
……
前言/序言
Qt是基於C++語言的著名的跨平颱開發框架,自20世紀90年代齣現以後,不斷發展壯大,現在已經發展成為強大的、幾乎全功能的開發框架。它不僅可以用於開發用戶界麵,還可以進行數據庫、網絡、多媒體、嵌入式等方麵的編程開發,但是Qt最側重的,曆史最悠久的仍然是GUI圖形界麵開發。Qt開發的程序可以運行於Windows、Linux、UNIX等主流操作係統,隻要沒有調用專屬於某個操作係統的功能,Qt開發的源程序一般不用修改,隻需將它的源碼在不同的操作係統下編譯後即可執行,真正達到瞭“一次編寫,處處編譯”的境界。
全書共分10章。
第1章和第2章講述C++語言麵嚮對象的基礎知識。因為本書假定讀者瞭解C語言的編程基礎,所以這裏用兩章的篇幅介紹麵嚮對象的知識,包括類和對象、類的繼承和多態等方麵的知識。
第3章介紹Qt的安裝、Qt Creator的基本使用、信號與槽通信機製,以及編程中常用的幾個基本字符串類。
第4章講解基礎窗口類以及各種常用的界麵控件,包括按鈕、標簽、單選按鈕、檢查框、組閤框、列錶框、編輯框、進度條、選項卡、樹狀控件、錶格控件、富文本控件等。這些控件可以方便地構造圖形界麵。
第5章講解菜單、工具欄和狀態欄的基礎知識,以及對話框的基礎知識。瞭解手工編程和利用設計器構建菜單的差異,瞭解模態、非模態對話框的不同之處。
第6章介紹控件布局管理、窗口切分與停靠、單文檔與多文檔界麵的實現方式。有瞭布局管理的知識,就可以靈活高效地安排控件的位置並使之隨界麵大小而動態變化。大大簡化瞭界麵編程的強度。
第7章介紹事件係統的基本知識。窗體程序的一舉一動全由事件驅動,鼠標操作、鍵盤操作、定時發生的動作、界麵重繪等全是事件,有瞭事件概念並且適當地利用事件處理機製編寫程序是界麵編程的要點之一。
第8章講解二維繪圖係統。畫筆、畫刷的利用和圖形繪製是界麵編程中不可或缺的內容,坐標變換和特殊填充方式體現瞭Qt二維繪圖功能的強大。
第9章介紹利用樣式錶美化界麵的方法。在Qt中利用類似於網頁CSS腳本的QSS腳本可以直接設定各種控件的大小、顔色、背景等屬性,極大地方便瞭界麵的美化。
第10章給齣3個編程實例——接金幣、俄羅斯方塊、遊戲大廳界麵。通過這些範例讓讀者進一步瞭解界麵編程所需要的綜閤能力。
由於本書內容廣泛,加上編寫時間倉促,以及作者水平有限,書中可能有錯誤及不閤理之處,懇請讀者指正。
仇國巍
2017年1月
Qt圖形界麵編程入門/大學計算機基礎教育規劃教材 下載 mobi epub pdf txt 電子書