第1篇基本應(yīng)用篇
第1章Qt Creator簡介2
1.1軟件的下載與安裝2
1.2Qt Creator環(huán)境介紹3
1.2.1運行一個示例程序6
1.2.2幫助模式8
1.3Qt工具簡介10
1.3.1Qt Assistant(Qt助手)10
1.3.2Qt Designer(Qt設(shè)計師)10
1.3.3Qt Linguist(Qt語言家)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文件說明與界面設(shè)計15
2.2程序的運行與發(fā)布17
2.2.1程序的運行17
2.2.2程序的發(fā)布2
2.2.3設(shè)置應(yīng)用程序圖標(biāo)21
2.3項目模式和項目文件介紹22
2.3.1項目模式22
2.3.2項目文件22
2.4helloworld程序源碼與編譯過程詳解23
2.4.1在Qt Creator中使用純代碼編寫并編譯運行程序24
2.4.2使用其他編輯器純代碼編寫程序并在命令行編譯運行程序27
2.4.3使用.ui文件來生成界面30
2.4.4自定義C++ 窗口類33
2.4.5使用現(xiàn)成的Qt設(shè)計師界面類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對話框QDialog45
3.2.1模態(tài)和非模態(tài)對話框45
3.2.2初識信號和槽并實現(xiàn)多窗口切換47
3.2.3標(biāo)準(zhǔn)對話框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布局管理器簡介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可擴展窗口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語法高亮與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ù)115
6.5事件過濾器與事件的發(fā)送117
6.6小結(jié)119
第7章Qt對象模型與容器類120
7.1對象模型120
7.2信號和槽121
7.2.1信號和槽概述121
7.2.2信號和槽典型應(yīng)用示例122
7.2.3信號和槽的關(guān)聯(lián)123
7.2.4信號和槽的自動關(guān)聯(lián)126
7.2.5信號和槽斷開關(guān)聯(lián)127
7.2.6信號和槽的高級應(yīng)用128
7.3屬性系統(tǒng)128
7.4對象樹與擁有權(quán)131
7.5元對象系統(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正則表達式154
7.7.1正則表達式語法簡介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è)計模式中設(shè)置樣式表173
8.4Qt樣式表語法174
8.5自定義部件外觀與換膚176
8.5.1盒子模型176
8.5.2自定義部件外觀177
8.5.3實現(xiàn)換膚功能178
8.6特殊效果窗體179
8.6.1不規(guī)則窗體179
8.6.2透明窗體181
8.7小結(jié)183
第9章國際化、幫助系統(tǒng)和Qt插件184
9.1國際化184
9.1.1使用Qt Linguist翻譯應(yīng)用程序184
9.1.2使用Qt Creator自動生成翻譯文件189
9.1.3程序翻譯中的相關(guān)問題190
9.2幫助系統(tǒng)192
9.2.1簡單的幫助提示192
9.2.2定制Qt Assistant193
9.3創(chuàng)建Qt插件200
9.3.1在設(shè)計模式提升窗口部件200
9.3.2創(chuàng)建應(yīng)用程序插件201
9.3.3創(chuàng)建Qt Designer自定義部件205
9.4小結(jié)206
第2篇圖形動畫篇
第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組成一個路徑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繪圖中的其他問題237
10.10小結(jié)239
第11章圖形視圖、動畫和狀態(tài)機框架240
11.1圖形視圖框架的結(jié)構(gòu)240
11.1.1場景241
11.1.2視圖242
11.1.3圖形項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動畫、碰撞檢測和圖形項組256
11.3.3打印和使用OpenGL進行渲染259
11.3.4圖形部件、布局和內(nèi)嵌部件260
11.4動畫框架261
11.4.1實現(xiàn)屬性動畫262
11.4.2使用緩和曲線263
11.4.3動畫組264
11.4.4在圖形視圖框架中使用動畫265
11.5狀態(tài)機框架267
11.5.1創(chuàng)建狀態(tài)機267
11.5.2在狀態(tài)機中使用動畫269
11.5.3狀態(tài)機框架的其他特性270
11.6小結(jié)277
第12章3D繪圖278
12.1使用OpenGL繪制圖形278
12.2繪制多邊形282
12.2.1使用頂點數(shù)組282
12.2.2使用緩存283
12.3繪制彩色3D圖形284
12.3.1為圖形設(shè)置頂點顏色284
12.3.2實現(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章相機和音頻錄制306
14.1使用相機306
14.1.1相機QCamera306
14.1.2使用相機進行拍照307
14.1.3使用相機進行視頻錄制308
14.1.4對相機進行設(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ù)流讀/寫二進制數(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簡單的例子331
16.2模型類332
16.2.1基本概念332
16.2.2創(chuàng)建新的模型336
16.3視圖類340
16.3.1基本概念340
16.3.2處理項目選擇341
16.4委托類346
16.4.1基本概念346
16.4.2自定義委托346
16.5項目視圖的便捷類349
16.5.1QListWidget349
16.5.2QTreeWidget350
16.5.3QTableWidget351
16.5.4共同特性351
16.6在項目視圖中啟用拖放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ù)庫和XML359
17.1數(shù)據(jù)庫簡介359
17.2連接數(shù)據(jù)庫360
17.2.1SQL數(shù)據(jù)庫驅(qū)動360
17.2.2創(chuàng)建數(shù)據(jù)庫連接361
17.3執(zhí)行SQL語句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ù)動態(tài)創(chuàng)建圖表394
18.2Qt數(shù)據(jù)可視化397
18.2.13D柱形圖示例398
18.2.2項目模型和數(shù)據(jù)映射403
18.2.33D散點圖和3D曲面圖示例405
18.3小結(jié)406
第5篇網(wǎng)絡(luò)通信篇
第19章網(wǎng)絡(luò)編程408
19.1網(wǎng)絡(luò)訪問API408
19.1.1網(wǎng)絡(luò)訪問API相關(guān)類408
19.1.2HTTP通信程序示例409
19.2獲取網(wǎng)絡(luò)接口信息412
19.2.1QHostInfo進行主機名查找412
19.2.2QNetworkInterface獲取本機網(wǎng)絡(luò)接口信息414
19.2.3QDnsLookup進行DNS查詢415
19.3UDP416
19.3.1UDP簡介416
19.3.2UDP廣播程序示例416
19.4TCP418
19.4.1TCP簡介418
19.4.2TCP傳輸字符串示例419
19.4.3TCP傳輸文件示例423
19.5小結(jié)430
第20章進程和線程431
20.1進程431
20.1.1運行一個進程431
20.1.2進程間通信434
20.2線程437
20.2.1使用QThread啟動線程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)頁瀏覽器451
21.2.1顯示一個網(wǎng)頁452
21.2.2網(wǎng)站圖標(biāo)和網(wǎng)頁縮放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
參考文獻466