本書(shū)兩個(gè)實(shí)際項目為背景,循序漸進(jìn)地介紹Qt C++開(kāi)發(fā)應用程序的技術(shù),有以下幾個(gè)特點(diǎn)。
1.以Qt 5.9.1為開(kāi)發(fā)版本,版本較新,未來(lái)三年內有持續的支持。
2.適合作為高等學(xué)校Qt程序設計工程實(shí)訓課程的教材,填補了低年級Qt程序設計工程實(shí)訓課程教材的空白,也適合作為Qt初學(xué)者的入門(mén)參考書(shū)。
3.按照完成一個(gè)獨立的實(shí)訓項目需要的知識點(diǎn)來(lái)組織內容,每個(gè)實(shí)訓項目均分布一些基本的知識點(diǎn),使讀者通過(guò)學(xué)習和實(shí)踐,由淺入深地掌握C++ Qt編程知識,增加學(xué)習興趣。
本書(shū)介紹以C++編程語(yǔ)言為基礎的Qt圖形界面編程,全書(shū)以?xún)蓚€(gè)實(shí)際項目為背景,共分為10個(gè)完整、獨立的實(shí)訓項目,按照完成一個(gè)獨立的實(shí)際項目需要的知識點(diǎn)來(lái)組織每個(gè)實(shí)訓內容,在實(shí)現功能遞增的七個(gè)版本的計算器和兩個(gè)版本的五子棋中不斷深化,逐步引出面向Qt圖形界面編程實(shí)踐的問(wèn)題和知識點(diǎn)。本書(shū)的**個(gè)實(shí)訓是實(shí)訓準備,介紹Qt編程環(huán)境的搭建;第二個(gè)至第八個(gè)實(shí)訓,圍繞圖形界面計算器的實(shí)現,在功能復雜度逐步提高、逐步深化中展開(kāi),通過(guò)七個(gè)完整、獨立的計算器實(shí)訓,使讀者掌握Qt圖形界面編程的窗體控件、布局、菜單、事件、信號和槽等知識;第九、第十個(gè)實(shí)訓,通過(guò)介紹五子棋人人對戰和人機對戰,使讀者進(jìn)一步掌握Qt的進(jìn)階編程。本書(shū)適合作為高等學(xué)校計算機及相關(guān)專(zhuān)業(yè)程序設計工程實(shí)訓課程的教材,也可供計算機愛(ài)好者及其他自學(xué)人員參考。
胡然,碩士,講師,*家級大學(xué)生創(chuàng )新創(chuàng )業(yè)項目指導教師,南昌大學(xué)軟件學(xué)院程序設計教學(xué)組長(cháng),連續多年承擔C語(yǔ)言、C++、程序設計工程實(shí)訓課程的教學(xué)工作,經(jīng)驗豐富。主要研究領(lǐng)域:軟件工程,云計算。主持和參與*家級、省廳級、社會(huì )服務(wù)項目近10余項,發(fā)表EI論文多篇。
夏靈林,博士,副教授。主要研究領(lǐng)域:面向醫療電子、光電測控技術(shù),從事計算機與生物醫學(xué)工程交叉領(lǐng)域的軟、硬件開(kāi)發(fā)。發(fā)表SCI論文3篇,授權發(fā)明專(zhuān)利1項,社會(huì )服務(wù)項目5項,承擔和參與*家級、省廳級課題累計10余項。
徐健鋒,博士,副教授,美國東華盛頓大學(xué)訪(fǎng)問(wèn)學(xué)者。主要研究領(lǐng)域:人工智能、機器學(xué)習、大數據分析、粒計算、智能軟件,近5年主持和參與國家自然基金3項,主持省科技廳教育廳項目5項,主持社會(huì )服務(wù)項目20余項,累計研究經(jīng)費300余萬(wàn)元。
目 錄
實(shí)訓準備 1
(一)實(shí)訓內容 1
(二)實(shí)訓原理 1
1. Qt 簡(jiǎn)介 1
2. Qt 的下載和安裝 1
3. Qt Creator簡(jiǎn)介 2
4. Qt Assistant 5
5. 創(chuàng )建第一個(gè)Qt程序HelloWorld 9
6. 設置環(huán)境變量 9
(三)實(shí)訓步驟 10
(四)小結 13
實(shí)訓一 計算器V1.0:簡(jiǎn)易計算器的實(shí)現 14
(一)實(shí)訓內容 14
(二)實(shí)訓原理 14
1. Qt項目的結構 14
2. Qt Designer簡(jiǎn)介 15
3. 窗口的常用屬性和功能 16
4. 標簽、行編輯器、按鈕等常用控件的使用 17
5. 用Qt Desiger設計一個(gè)桌面應用 22
6. 實(shí)現計算器V1.0:簡(jiǎn)易計算器 24
(三)實(shí)訓步驟 24
(四)小結 26
實(shí)訓二 計算器V2.0:基本計算器的實(shí)現 27
(一)實(shí)訓內容 27
(二)實(shí)訓原理 27
1. 布局管理器的基本概念和作用 27
2. 幾種常用的布局管理器 28
3. 使用Qt Designer設計基本計算器界面 41
4. 使用布局管理器管理計算器界面 42
5. 實(shí)現計算器V2.0:基本計算器 42
(三)實(shí)訓步驟 42
1. 界面設計 42
2. 功能實(shí)現 45
3. 運行程序 49
(四)小結 50
實(shí)訓三 計算器V3.0:帶鍵盤(pán)事件的計算器 51
(一)實(shí)訓內容 51
(二)實(shí)訓原理 51
1. Qt中信號和槽的概念 51
2. Qt中信號和槽的使用 52
3. Qt中的鼠標事件 58
4. Qt中的鍵盤(pán)事件 62
5. 為計算器增加鍵盤(pán)事件功能 64
(三)實(shí)訓步驟 66
(四)小結 67
實(shí)訓四 計算器V4.0:帶括號表達式的計算器 68
(一)實(shí)訓內容 68
(二)實(shí)訓原理 68
1. qDebug()的使用 68
2. 棧 70
3. 前綴、中綴、后綴表達式 71
4. 將中綴表達式轉換為后綴表達式的算法 72
5. 計算后綴表達式的算法 75
6. 實(shí)現帶括號表達式的計算器 78
(三)實(shí)訓步驟 78
(四)小結 87
實(shí)訓五 計算器V5.0:帶菜單和粘貼功能的計算器 89
(一)實(shí)訓內容 89
(二)實(shí)訓原理 89
1. 桌面程序主窗口框架 89
2. 對話(huà)框的基礎知識 93
3. 添加應用程序圖標 102
4. 實(shí)現帶菜單、可復制表達式的計算器 104
(三)實(shí)訓步驟 104
(四)小結 106
實(shí)訓六 計算器V6.0:能夠記憶的計算器 107
(一)實(shí)訓內容 107
(二)實(shí)訓原理 107
1. Qt中的富文本處理 107
2. Qt中文檔的基本框架 107
3. 添加歷史記錄功能 112
(三)實(shí)訓步驟 112
(四)小結 117
實(shí)訓七 計算器V7.0:可擴展的科學(xué)計算器 118
(一)實(shí)訓內容 118
(二)實(shí)訓原理 118
1. Qt布局管理器可擴展窗口的應用 118
2. 添加科學(xué)計算可擴展功能 119
3. 切換可擴展科學(xué)計算器的實(shí)現 122
(三)實(shí)訓步驟 122
(四)小結 132
實(shí)訓八 雙人對戰五子棋 133
(一)實(shí)訓內容 133
(二)實(shí)訓原理 133
1. Qt中的2D繪圖系統 133
2. 五子棋界面的繪制 136
3. 單擊鼠標下棋 139
4. 判斷贏(yíng)棋 140
5. 雙人對戰五子棋 141
(三)實(shí)訓步驟 141
(四)小結 152
實(shí)訓九 人機對戰五子棋 153
(一)實(shí)訓內容 153
(二)實(shí)訓原理 153
1. 五子棋的棋局形勢 153
2. 估值函數的設計 156
3. 人機對戰、可悔棋的五子棋 158
(三)實(shí)訓步驟 158
(四)小結 172