本書介紹以C++編程語言為基礎的Qt圖形界面編程,全書以兩個實際項目為背景,共分為10個完整、獨立的實訓項目,按照完成一個獨立的實際項目需要的知識點來組織每個實訓內容,在實現(xiàn)功能遞增的七個版本的計算器和兩個版本的五子棋中不斷深化,逐步引出面向Qt圖形界面編程實踐的問題和知識點。本書的第一個實訓是實訓準備,介紹Qt編程環(huán)境的搭建;第二個至第八個實訓,圍繞圖形界面計算器的實現(xiàn),在功能復雜度逐步提高、逐步深化中展開,通過七個完整、獨立的計算器實訓,使讀者掌握Qt圖形界面編程的窗體控件、布局、菜單、事件、信號和槽等知識;第九、第十個實訓,通過介紹五子棋人人對戰(zhàn)和人機對戰(zhàn),使讀者進一步掌握Qt的進階編程。本書適合作為高等學校計算機及相關專業(yè)程序設計工程實訓課程的教材,也可供計算機愛好者及其他自學人員參考。
胡然,南昌大學軟件學院軟件工程教研室,講師,高級語言程序設計教學組長。連續(xù)多年承擔C語言、C++和程序設計工程實訓課程的教學工作,經(jīng)驗豐富。
目 錄
實訓準備 1
(一)實訓內容 1
(二)實訓原理 1
1. Qt 簡介 1
2. Qt 的下載和安裝 1
3. Qt Creator簡介 2
4. Qt Assistant 5
5. 創(chuàng)建第一個Qt程序HelloWorld 9
6. 設置環(huán)境變量 9
(三)實訓步驟 10
(四)小結 13
實訓一 計算器V1.0:簡易計算器的實現(xiàn) 14
(一)實訓內容 14
(二)實訓原理 14
1. Qt項目的結構 14
2. Qt Designer簡介 15
3. 窗口的常用屬性和功能 16
4. 標簽、行編輯器、按鈕等常用控件的使用 17
5. 用Qt Desiger設計一個桌面應用 22
6. 實現(xiàn)計算器V1.0:簡易計算器 24
(三)實訓步驟 24
(四)小結 26
實訓二 計算器V2.0:基本計算器的實現(xiàn) 27
(一)實訓內容 27
(二)實訓原理 27
1. 布局管理器的基本概念和作用 27
2. 幾種常用的布局管理器 28
3. 使用Qt Designer設計基本計算器界面 41
4. 使用布局管理器管理計算器界面 42
5. 實現(xiàn)計算器V2.0:基本計算器 42
(三)實訓步驟 42
1. 界面設計 42
2. 功能實現(xiàn) 45
3. 運行程序 49
(四)小結 50
實訓三 計算器V3.0:帶鍵盤事件的計算器 51
(一)實訓內容 51
(二)實訓原理 51
1. Qt中信號和槽的概念 51
2. Qt中信號和槽的使用 52
3. Qt中的鼠標事件 58
4. Qt中的鍵盤事件 62
5. 為計算器增加鍵盤事件功能 64
(三)實訓步驟 66
(四)小結 67
實訓四 計算器V4.0:帶括號表達式的計算器 68
(一)實訓內容 68
(二)實訓原理 68
1. qDebug()的使用 68
2. 棧 70
3. 前綴、中綴、后綴表達式 71
4. 將中綴表達式轉換為后綴表達式的算法 72
5. 計算后綴表達式的算法 75
6. 實現(xiàn)帶括號表達式的計算器 78
(三)實訓步驟 78
(四)小結 87
實訓五 計算器V5.0:帶菜單和粘貼功能的計算器 89
(一)實訓內容 89
(二)實訓原理 89
1. 桌面程序主窗口框架 89
2. 對話框的基礎知識 93
3. 添加應用程序圖標 102
4. 實現(xiàn)帶菜單、可復制表達式的計算器 104
(三)實訓步驟 104
(四)小結 106
實訓六 計算器V6.0:能夠記憶的計算器 107
(一)實訓內容 107
(二)實訓原理 107
1. Qt中的富文本處理 107
2. Qt中文檔的基本框架 107
3. 添加歷史記錄功能 112
(三)實訓步驟 112
(四)小結 117
實訓七 計算器V7.0:可擴展的科學計算器 118
(一)實訓內容 118
(二)實訓原理 118
1. Qt布局管理器可擴展窗口的應用 118
2. 添加科學計算可擴展功能 119
3. 切換可擴展科學計算器的實現(xiàn) 122
(三)實訓步驟 122
(四)小結 132
實訓八 雙人對戰(zhàn)五子棋 133
(一)實訓內容 133
(二)實訓原理 133
1. Qt中的2D繪圖系統(tǒng) 133
2. 五子棋界面的繪制 136
3. 單擊鼠標下棋 139
4. 判斷贏棋 140
5. 雙人對戰(zhàn)五子棋 141
(三)實訓步驟 141
(四)小結 152
實訓九 人機對戰(zhàn)五子棋 153
(一)實訓內容 153
(二)實訓原理 153
1. 五子棋的棋局形勢 153
2. 估值函數(shù)的設計 156
3. 人機對戰(zhàn)、可悔棋的五子棋 158
(三)實訓步驟 158
(四)小結 172