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