內容簡介
本書以Qt 6.2.4 LTS版本為開發平台,詳細介紹了使用Qt進行 C++桌面應用程式開發的基本技術。全書共12章,包括初識Qt框架、Qt開發基礎、界面設計組件、主框架窗體、對話框設計、事件系統、檔案與資料庫、模型/視圖結構、圖形繪製、多媒體編程、網路編程和進程與執行緒等內容。 本書內容安排循序漸進,講解深入淺出,實例豐富、實用。書中針對每個知識點的簡短實例特別有助於初學者理解與仿效,並快速把握問題的精髓。
圖書目錄
目錄
第1章初識Qt框架1
1.1Qt 簡介1
1.1.1Qt歷史及套用1
1.1.2Qt版本與特點2
1.2開發環境搭建3
1.2.1下載與安裝3
1.2.2集成開發工具6
1.2.3其他輔助工具17
1.3程式設計方式20
1.3.1可視化設計20
1.3.2代碼化設計22
1.3.3混合式設計25
1.4項目結構分析26
1.4.1項目檔案組成26
1.4.2程式運行機制27
習題129
第2章Qt開發基礎31
2.1Qt套用概述31
2.1.1Qt套用特點31
2.1.2Qt套用功能32
2.2Qt元對象系統34
2.2.1對象模型34
2.2.2元對象系統35
2.2.3屬性系統36
2.3信號與槽44
2.3.1概述44
2.3.2信號44
2.3.3槽45
2.3.4關聯46
2.4常用的Qt工具類51
2.4.1字元串類51
2.4.2容器類56
習題263
第3章界面設計組件67
3.1基本窗體67
3.1.1QWidget類67
3.1.2簡單實例70
3.2常用組件71
3.2.1按鈕組件71
3.2.2輸入組件73
3.2.3顯示組件79
3.2.4瀏覽組件80
3.2.5容器組件87
3.2.6布局組件89
3.3布局管理89
3.3.1QLayout類89
3.3.2基本布局90
3.3.3表單布局92
3.3.4格線布局94
習題395
第4章主框架窗體99
4.1框架結構99
4.1.1基本元素99
4.1.2主窗體類100
4.2選單設計102
4.2.1選單相關類102
4.2.2可視化設計107
4.2.3純代碼設計111
4.3工具列設計113
4.3.1工具列相關類113
4.3.2可視化設計116
4.3.3純代碼設計118
4.4狀態欄設計118
4.4.1QStatusBar類118
4.4.2設計實例119
4.5中心部件121
4.6錨接部件123
4.6.1QDockWidget類123
4.6.2設計實例124
習題4125
第5章對話框設計128
5.1對話框相關Qt類128
5.1.1QDialog類128
5.1.2QDialogButtonBox類130
5.2自定義對話框131
5.2.1模態對話框131
5.2.2非模態對話框132
5.2.3數據交換133
5.3標準對話框137
5.3.1顏色對話框137
5.3.2檔案對話框138
5.3.3字型對話框139
5.3.4輸入對話框140
5.3.5訊息對話框141
5.4其他Qt窗體143
5.4.1分割窗體143
5.4.2層疊窗體145
5.4.3閃屏窗體147
5.4.4MDI窗體149
習題5152
第6章事件系統155
6.1事件機制155
6.1.1事件的描述155
6.1.2事件的產生158
6.1.3事件的傳遞159
6.1.4事件的過濾160
6.1.5事件的處理162
6.2事件處理162
6.2.1事件處理示例163
6.2.2事件過濾器的使用166
6.3滑鼠事件167
6.3.1QMouseEvent類167
6.3.2滑鼠事件處理169
6.4鍵盤事件171
6.4.1QKeyEvent類171
6.4.2鍵盤事件處理172
6.5定時器事件173
6.5.1QTimerEvent類174
6.5.2基於QObject類的定時器174
6.5.3基於QTimer類的定時器175
習題6177
第7章檔案與資料庫181
7.1Qt檔案系統181
7.1.1檔案系統類181
7.1.2檔案I/O設備182
7.2目錄操作184
7.2.1QDir類184
7.2.2QTemporaryDir類185
7.2.3QFileInfo類187
7.2.4常用目錄操作188
7.3檔案操作193
7.3.1相關操作類193
7.3.2檔案信息查詢196
7.3.3文本檔案讀寫197
7.3.4二進制檔案讀寫201
7.4Qt SQL概述203
7.4.1Qt SQL模組203
7.4.2Qt SQL驅動204
7.5資料庫操作206
7.5.1資料庫的連線207
7.5.2資料庫的操作212
習題7217
第8章模型/視圖結構222
8.1概述222
8.1.1基本結構222
8.1.2數據表示223
8.1.3模型/視圖結構相關Qt類226
8.2數據模型227
8.2.1QAbstractListModel模型228
8.2.2QFileSystemModel模型231
8.2.3QStandardItemModel模型234
8.2.4QAbstractTableMode模型236
8.3代理組件241
8.3.1默認代理241
8.3.2自定義代理243
8.4視圖組件245
8.4.1QAbstractItemView類245
8.4.2QListView視圖247
8.4.3QTableView視圖250
8.4.4QTreeView視圖253
習題8256
第9章圖形繪製260
9.1Qt繪圖基礎260
9.1.1簡單示例260
9.1.2QPainter類261
9.1.3QPen類263
9.1.4QBrush類267
9.2基本圖形繪製270
9.2.1點和線的繪製271
9.2.2矩形和橢圓的繪製273
9.2.3多邊形和扇形的繪製274
9.2.4漸變填充圖形的繪製275
9.3圖像繪製279
9.4其他繪製281
9.4.1繪製文字282
9.4.2繪製路徑283
9.5坐標變換284
9.5.1平移變換284
9.5.2縮放變換285
9.5.3扭曲變換286
9.5.4旋轉變換287
習題9288
第10章多媒體編程293
10.1Qt多媒體簡介293
10.1.1Qt多媒體功能293
10.1.2Qt多媒體模組294
10.2音頻處理295
10.2.1音頻處理相關Qt類295
10.2.2音頻播放299
10.2.3音頻輸入308
10.3視頻播放310
10.3.1視頻播放相關Qt類310
10.3.2視頻播放編程方法312
10.4視頻操作316
10.4.1視頻操作相關Qt類316
10.4.2設備查詢321
10.4.3圖像捕獲321
10.4.4視頻錄製323
習題10325
第11章網路編程329
11.1Qt網路模組329
11.1.1Qt Network模組329
11.1.2Qt WebSockets模組330
11.1.3Qt WebChannel模組332
11.1.4Qt WebEngine模組332
11.1.5Qt WebView模組333
11.2網路信息查詢334
11.2.1使用QHostInfo類335
11.2.2使用QNetworkInterface類336
11.3HTTP編程338
11.3.1HTTP相關Qt類338
11.3.2HTTP訪問341
11.3.3HTTP下載343
11.4TCP編程345
11.4.1TCP相關Qt類346
11.4.2伺服器端編程348
11.4.3客戶端編程351
11.5UDP編程353
11.5.1QUdpSocket類353
11.5.2UDP單播354
11.5.3UDP組播357
習題11361
第12章進程與執行緒365
12.1進程與執行緒相關Qt類365
12.1.1QProcess類365
12.1.2QThread類367
12.2進程369
12.2.1進程的啟動370
12.2.2進程間通信372
12.3執行緒378
12.3.1執行緒的運行378
12.3.2執行緒間通信382
12.4執行緒控制384
12.4.1基於互斥量384
12.4.2基於信號量386
12.4.3基於QReadWriteLock389
12.4.4基於QWaitCondition391
習題12393
參考文獻397