第1篇基本應(yīng)用篇
第1章Qt Creator簡(jiǎn)介2
1.1軟件的下載與安裝2
1.2Qt Creator環(huán)境介紹3
1.2.1運(yùn)行一個(gè)示例程序6
1.2.2幫助模式8
1.3Qt工具簡(jiǎn)介10
1.3.1Qt Assistant(Qt助手)10
1.3.2Qt Designer(Qt設(shè)計(jì)師)10
1.3.3Qt Linguist(Qt語(yǔ)言家)11
1.4關(guān)于本書源碼的使用11
1.5小結(jié)11
第2章Hello World1
2.1編寫Hello World程序13
2.1.1新建Qt Widgets應(yīng)用13
2.1.2文件說(shuō)明與界面設(shè)計(jì)15
2.2程序的運(yùn)行與發(fā)布17
2.2.1程序的運(yùn)行17
2.2.2程序的發(fā)布2
2.2.3設(shè)置應(yīng)用程序圖標(biāo)21
2.3項(xiàng)目模式和項(xiàng)目文件介紹22
2.3.1項(xiàng)目模式22
2.3.2項(xiàng)目文件22
2.4helloworld程序源碼與編譯過(guò)程詳解23
2.4.1在Qt Creator中使用純代碼編寫并編譯運(yùn)行程序24
2.4.2使用其他編輯器純代碼編寫程序并在命令行編譯運(yùn)行程序27
2.4.3使用.ui文件來(lái)生成界面30
2.4.4自定義C++ 窗口類33
2.4.5使用現(xiàn)成的Qt設(shè)計(jì)師界面類36
2.5小結(jié)37
第3章窗口部件38
3.1基礎(chǔ)窗口部件QWidget38
3.1.1窗口、子部件以及窗口類型39
3.1.2窗口幾何布局41
3.1.3程序調(diào)試42
3.2對(duì)話框QDialog45
3.2.1模態(tài)和非模態(tài)對(duì)話框45
3.2.2初識(shí)信號(hào)和槽并實(shí)現(xiàn)多窗口切換47
3.2.3標(biāo)準(zhǔn)對(duì)話框51
3.3其他窗口部件57
3.3.1QFrame類族57
3.3.2按鈕部件60
3.3.3QLineEdit62
3.3.4QAbstractSpinBox64
3.3.5QAbstractSlider65
3.4小結(jié)66
第4章布局管理67
4.1布局管理系統(tǒng)67
4.1.1布局管理器簡(jiǎn)介68
4.1.2基本布局管理器68
4.1.3柵格布局管理器69
4.1.4窗體布局管理器70
4.1.5綜合使用布局管理器70
4.1.6設(shè)置部件大小71
4.1.7可擴(kuò)展窗口74
4.1.8拆分器74
4.2設(shè)置伙伴75
4.3設(shè)置Tab鍵順序75
4.4Qt Creator中的定位器76
4.5小結(jié)77
第5章應(yīng)用程序主窗口78
5.1主窗口框架78
5.1.1Qt資源系統(tǒng)、菜單欄和工具欄79
5.1.2中心部件84
5.1.3Dock部件85
5.1.4狀態(tài)欄85
5.1.5自定義菜單86
5.2富文本處理89
5.2.1富文本文檔結(jié)構(gòu)89
5.2.2文本塊90
5.2.3表格、列表與圖片93
5.2.4查找功能94
5.2.5語(yǔ)法高亮與HTML96
5.3拖放操作97
5.3.1使用拖放打開文件98
5.3.2自定義拖放操作99
5.4打印文檔102
5.5小結(jié)104
第6章事件系統(tǒng)105
6.1Qt中的事件105
6.1.1事件的處理106
6.1.2事件的傳遞106
6.2鼠標(biāo)事件和滾輪事件109
6.3鍵盤事件112
6.4定時(shí)器事件與隨機(jī)數(shù)115
6.5事件過(guò)濾器與事件的發(fā)送117
6.6小結(jié)119
第7章Qt對(duì)象模型與容器類120
7.1對(duì)象模型120
7.2信號(hào)和槽121
7.2.1信號(hào)和槽概述121
7.2.2信號(hào)和槽典型應(yīng)用示例122
7.2.3信號(hào)和槽的關(guān)聯(lián)123
7.2.4信號(hào)和槽的自動(dòng)關(guān)聯(lián)126
7.2.5信號(hào)和槽斷開關(guān)聯(lián)127
7.2.6信號(hào)和槽的高級(jí)應(yīng)用128
7.3屬性系統(tǒng)128
7.4對(duì)象樹與擁有權(quán)131
7.5元對(duì)象系統(tǒng)134
7.6容器類135
7.6.1Qt的容器類135
7.6.2遍歷容器139
7.6.3常用的STL算法145
7.6.4QString147
7.6.5QByteArray和QVariant151
7.6.6隱式共享153
7.7正則表達(dá)式154
7.7.1正則表達(dá)式語(yǔ)法簡(jiǎn)介155
7.7.2正常匹配和文本捕獲161
7.7.3全局匹配163
7.7.4部分匹配164
7.7.5通配符匹配167
7.8小結(jié)168
第8章界面外觀169
8.1Qt風(fēng)格169
8.2Qt調(diào)色板170
8.3Qt樣式表172
8.3.1使用代碼設(shè)置樣式表172
8.3.2在設(shè)計(jì)模式中設(shè)置樣式表173
8.4Qt樣式表語(yǔ)法174
8.5自定義部件外觀與換膚176
8.5.1盒子模型176
8.5.2自定義部件外觀177
8.5.3實(shí)現(xiàn)換膚功能178
8.6特殊效果窗體179
8.6.1不規(guī)則窗體179
8.6.2透明窗體181
8.7小結(jié)183
第9章國(guó)際化、幫助系統(tǒng)和Qt插件184
9.1國(guó)際化184
9.1.1使用Qt Linguist翻譯應(yīng)用程序184
9.1.2使用Qt Creator自動(dòng)生成翻譯文件189
9.1.3程序翻譯中的相關(guān)問(wèn)題190
9.2幫助系統(tǒng)192
9.2.1簡(jiǎn)單的幫助提示192
9.2.2定制Qt Assistant193
9.3創(chuàng)建Qt插件200
9.3.1在設(shè)計(jì)模式提升窗口部件200
9.3.2創(chuàng)建應(yīng)用程序插件201
9.3.3創(chuàng)建Qt Designer自定義部件205
9.4小結(jié)206
第2篇圖形動(dòng)畫篇
第10章2D繪圖208
10.1基本圖形的繪制和填充208
10.1.1繪制圖形208
10.1.2使用畫筆210
10.1.3使用畫刷211
10.2漸變填充214
10.3坐標(biāo)系統(tǒng)216
10.3.1抗鋸齒渲染216
10.3.2坐標(biāo)變換219
10.4繪制文字225
10.5繪制路徑226
10.5.1組成一個(gè)路徑226
10.5.2填充規(guī)則227
10.6繪制圖像229
10.6.1QImage230
10.6.2QPixmap231
10.6.3QPicture233
10.7復(fù)合模式234
10.8雙緩沖繪圖235
10.9繪圖中的其他問(wèn)題237
10.10小結(jié)239
第11章圖形視圖、動(dòng)畫和狀態(tài)機(jī)框架240
11.1圖形視圖框架的結(jié)構(gòu)240
11.1.1場(chǎng)景241
11.1.2視圖242
11.1.3圖形項(xiàng)243
11.2圖形視圖框架的坐標(biāo)系統(tǒng)和事件處理245
11.2.1坐標(biāo)系統(tǒng)245
11.2.2事件處理與傳播250
11.3圖形視圖框架的其他特性255
11.3.1圖形效果255
11.3.2動(dòng)畫、碰撞檢測(cè)和圖形項(xiàng)組256
11.3.3打印和使用OpenGL進(jìn)行渲染259
11.3.4圖形部件、布局和內(nèi)嵌部件260
11.4動(dòng)畫框架261
11.4.1實(shí)現(xiàn)屬性動(dòng)畫262
11.4.2使用緩和曲線263
11.4.3動(dòng)畫組264
11.4.4在圖形視圖框架中使用動(dòng)畫265
11.5狀態(tài)機(jī)框架267
11.5.1創(chuàng)建狀態(tài)機(jī)267
11.5.2在狀態(tài)機(jī)中使用動(dòng)畫269
11.5.3狀態(tài)機(jī)框架的其他特性270
11.6小結(jié)277
第12章3D繪圖278
12.1使用OpenGL繪制圖形278
12.2繪制多邊形282
12.2.1使用頂點(diǎn)數(shù)組282
12.2.2使用緩存283
12.3繪制彩色3D圖形284
12.3.1為圖形設(shè)置頂點(diǎn)顏色284
12.3.2實(shí)現(xiàn)3D效果285
12.4使用紋理貼圖287
12.5小結(jié)290
第3篇影音媒體篇
第13章音視頻播放292
13.1播放音頻293
13.1.1播放壓縮音頻293
13.1.2低延遲聲音效果293
13.2播放視頻295
13.2.1播放視頻文件295
13.2.2使用QMovie播放GIF文件297
13.3QMediaPlayer299
13.3.1播放狀態(tài)301
13.3.2獲取媒體元數(shù)據(jù)304
13.4小結(jié)305
第14章相機(jī)和音頻錄制306
14.1使用相機(jī)306
14.1.1相機(jī)QCamera306
14.1.2使用相機(jī)進(jìn)行拍照307
14.1.3使用相機(jī)進(jìn)行視頻錄制308
14.1.4對(duì)相機(jī)進(jìn)行設(shè)置310
14.2錄制音頻311
14.3小結(jié)314
第4篇數(shù)據(jù)處理篇
第15章文件、目錄和輸入/輸出316
15.1輸入/輸出設(shè)備316
15.2文件操作317
15.3目錄操作320
15.4文本流和數(shù)據(jù)流323
15.4.1使用文本流讀/寫文本文件323
15.4.2使用數(shù)據(jù)流讀/寫二進(jìn)制數(shù)據(jù)324
15.5其他相關(guān)類326
15.6小結(jié)328
第16章模型/視圖編程329
16.1模型/視圖架構(gòu)329
16.1.1組成部分330
16.1.2簡(jiǎn)單的例子331
16.2模型類332
16.2.1基本概念332
16.2.2創(chuàng)建新的模型336
16.3視圖類340
16.3.1基本概念340
16.3.2處理項(xiàng)目選擇341
16.4委托類346
16.4.1基本概念346
16.4.2自定義委托346
16.5項(xiàng)目視圖的便捷類349
16.5.1QListWidget349
16.5.2QTreeWidget350
16.5.3QTableWidget351
16.5.4共同特性351
16.6在項(xiàng)目視圖中啟用拖放352
16.6.1在便捷類中啟用拖放352
16.6.2在模型/視圖類中啟用拖放353
16.7其他內(nèi)容356
16.7.1代理模型356
16.7.2數(shù)據(jù)窗口映射器357
16.8小結(jié)358
第17章數(shù)據(jù)庫(kù)和XML359
17.1數(shù)據(jù)庫(kù)簡(jiǎn)介359
17.2連接數(shù)據(jù)庫(kù)360
17.2.1SQL數(shù)據(jù)庫(kù)驅(qū)動(dòng)360
17.2.2創(chuàng)建數(shù)據(jù)庫(kù)連接361
17.3執(zhí)行SQL語(yǔ)句364
17.4使用SQL模型類368
17.4.1SQL查詢模型368
17.4.2SQL表格模型370
17.4.3SQL關(guān)系表格模型373
17.5XML374
17.5.1使用DOM讀取XML文檔374
17.5.2使用DOM創(chuàng)建和操作XML文檔377
17.5.3XML流382
17.6小結(jié)385
第18章Qt圖表和數(shù)據(jù)可視化386
18.1Qt圖表(Qt Charts)386
18.1.1Qt圖表示例386
18.1.2坐標(biāo)軸390
18.1.3使用外部數(shù)據(jù)動(dòng)態(tài)創(chuàng)建圖表394
18.2Qt數(shù)據(jù)可視化397
18.2.13D柱形圖示例398
18.2.2項(xiàng)目模型和數(shù)據(jù)映射403
18.2.33D散點(diǎn)圖和3D曲面圖示例405
18.3小結(jié)406
第5篇網(wǎng)絡(luò)通信篇
第19章網(wǎng)絡(luò)編程408
19.1網(wǎng)絡(luò)訪問(wèn)API408
19.1.1網(wǎng)絡(luò)訪問(wèn)API相關(guān)類408
19.1.2HTTP通信程序示例409
19.2獲取網(wǎng)絡(luò)接口信息412
19.2.1QHostInfo進(jìn)行主機(jī)名查找412
19.2.2QNetworkInterface獲取本機(jī)網(wǎng)絡(luò)接口信息414
19.2.3QDnsLookup進(jìn)行DNS查詢415
19.3UDP416
19.3.1UDP簡(jiǎn)介416
19.3.2UDP廣播程序示例416
19.4TCP418
19.4.1TCP簡(jiǎn)介418
19.4.2TCP傳輸字符串示例419
19.4.3TCP傳輸文件示例423
19.5小結(jié)430
第20章進(jìn)程和線程431
20.1進(jìn)程431
20.1.1運(yùn)行一個(gè)進(jìn)程431
20.1.2進(jìn)程間通信434
20.2線程437
20.2.1使用QThread啟動(dòng)線程438
20.2.2同步線程442
20.2.3可重入與線程安全445
20.2.4線程和QObject447
20.3小結(jié)449
第21章Qt WebEngine450
21.1Qt WebEngine架構(gòu)450
21.2基于Qt WebEngine Widgets的網(wǎng)頁(yè)瀏覽器451
21.2.1顯示一個(gè)網(wǎng)頁(yè)452
21.2.2網(wǎng)站圖標(biāo)和網(wǎng)頁(yè)縮放454
21.2.3顯示歷史記錄456
21.2.4查找功能和多窗口顯示457
21.3小結(jié)459
附錄A安裝MSVC版本Qt460
A.1安裝MSVC版本Qt460
A.2下載并安裝VS 2019461
A.3使用新套件構(gòu)建程序461
附錄BQt Creator鍵盤快捷鍵速查463
參考文獻(xiàn)466