關于我們
書單推薦
新書推薦
|
Qt 6 C++開發(fā)指南
本書以Qt 6為開發(fā)平臺,系統(tǒng)介紹如何用Qt C++開發(fā)應用程序。首先介紹Qt C++應用程序的基本結構、界面可視化設計和布局管理方法、元對象系統(tǒng)的功能及其應用等基本內容,然后深入講解常用界面組件、模型/視圖結構、事件處理、對話框和多窗口程序設計、文件讀寫等功能的編程方法,以及數(shù)據(jù)庫、多線程、網(wǎng)絡、多媒體、圖表、數(shù)據(jù)可視化、串口通信等功能模塊的使用。本書內容豐富,輔以大量精心設計的完整示例程序,涵蓋進行GUI程序設計所需掌握的各種技術主題。
·《Qt 5.9 C++開發(fā)指南》版本、內容重大升級。
·介紹新的Qt 6.2版本中新引入的功能模塊和開發(fā)技術。
·精心設計大量完整的示例程序,提供所有示例的源代碼下載,還提供一個集成了全書示例的可執(zhí)行文件的可安裝演示軟件,讀者可以瀏覽示例簡介,并運行所有示例的可執(zhí)行文件。
王維波,博士,中國石油大學(華東)教師,主要從事儀器儀表開發(fā)的教學和科研工作。著有《STM32Cube 高效開發(fā)教程》,曾開發(fā)多個工業(yè)應用嵌入式系統(tǒng)和專業(yè)數(shù)據(jù)處理軟件。
栗寶鵑,博士,中水北方勘測設計研究有限責任公司高級工程師,主要從事工程勘察、綜合地球物理探測與檢測中的數(shù)據(jù)處理、解譯與成像等工程應用和研究工作。
侯春望,碩士,中國石油大學(華東)教師,主要從事單片機系統(tǒng)和應用軟件開發(fā)方面的教學和研究工作,精通Qt C++ 編程,曾開發(fā)多個專業(yè)應用軟件。
第 1章 認識Qt 1
1.1 Qt簡介 1
1.1.1 Qt的跨平臺開發(fā)能力 1
1.1.2 Qt的許可類型和安裝包 2
1.1.3 Qt支持的開發(fā)語言 3
1.1.4 Qt 6新特性 4
1.2 Qt的安裝 5
1.2.1 本書使用的Qt版本 5
1.2.2 安裝Qt 5
1.2.3 安裝后的Qt 8
1.3 編寫一個Hello World程序 9
1.3.1 Qt Creator簡介 9
1.3.2 新建一個GUI項目 10
1.3.3 項目的文件組成和管理 12
1.3.4 項目的構建、調試與運行 13
第 2章 GUI程序設計基礎 15
2.1 GUI程序結構與運行機制 15
2.1.1 GUI項目文件組成 15
2.1.2 項目配置文件 15
2.1.3 UI文件 17
2.1.4 主程序文件 18
2.1.5 窗口相關的文件 19
2.2 可視化UI設計 23
2.2.1 窗口界面可視化設計 24
2.2.2 界面組件布局管理 25
2.2.3 信號與槽簡介 28
2.2.4 信號與槽的使用 29
2.2.5 為應用程序設置圖標 31
2.2.6 Qt項目構建過程基本原理 32
2.3 代碼化UI設計 33
2.3.1 示例功能概述 33
2.3.2 示例功能實現(xiàn) 33
2.4 使用CMake構建系統(tǒng) 36
2.4.1 CMake項目配置 37
2.4.2 CMake項目構建 38
2.4.3 使用cmake-gui生成Visual Studio項目 40
2.5 Qt Creator使用技巧 41
2.5.1 文本編輯器使用技巧 42
2.5.2 項目管理 42
2.5.3 代碼模型 42
第3章 Qt框架功能概述 44
3.1 Qt 6框架中的模塊 44
3.1.1 Qt基礎模塊 44
3.1.2 Qt附加模塊 45
3.2 Qt全局定義 45
3.2.1 數(shù)據(jù)類型定義 46
3.2.2 函數(shù) 46
3.2.3 宏定義 47
3.3 Qt的元對象系統(tǒng) 47
3.3.1 元對象系統(tǒng)概述 48
3.3.2 運行時類型信息 50
3.3.3 屬性系統(tǒng) 51
3.3.4 信號與槽 53
3.3.5 對象樹 57
3.3.6 元對象系統(tǒng)功能測試示例 58
3.4 容器類 63
3.4.1 順序容器類 63
3.4.2 關聯(lián)容器類 65
3.4.3 遍歷容器的數(shù)據(jù) 66
3.5 其他常用的基礎類 68
3.5.1 QVariant類 68
3.5.2 QFlags類 69
3.5.3 QRandomGenerator類 70
第4章 常用界面組件的使用 72
4.1 界面組件概述 72
4.1.1 常用的界面組件 72
4.1.2 QWidget類的主要屬性和接口函數(shù) 76
4.2 布局管理 78
4.2.1 布局管理相關的類 79
4.2.2 布局可視化設計及其代碼原理 80
4.3 QString字符串操作 83
4.3.1 QString簡介 83
4.3.2 QChar的功能 84
4.3.3 QChar主要功能測試 86
4.3.4 QString字符串常用操作 88
4.3.5 QString字符串常用功能測試 93
4.3.6 QString字符串與數(shù)值的轉換 94
4.3.7 QString字符串與數(shù)值轉換示例 98
4.4 QSpinBox和QDoubleSpinBox 100
4.4.1 QSpinBox類和QDoubleSpinBox類 100
4.4.2 示例程序 101
4.5 常用的按鈕組件 102
4.5.1 各按鈕類的接口詳解 103
4.5.2 示例程序功能實現(xiàn) 104
4.6 QSlider和QProgressBar 106
4.6.1 各組件類的主要屬性和接口函數(shù) 106
4.6.2 示例程序功能實現(xiàn) 108
4.7 日期時間數(shù)據(jù) 109
4.7.1 表示日期時間數(shù)據(jù)的類 109
4.7.2 日期時間數(shù)據(jù)的界面組件 113
4.7.3 示例程序功能實現(xiàn) 115
4.8 QTimer和QElapsedTimer 116
4.8.1 QTimer類 116
4.8.2 QElapsedTimer類 117
4.8.3 示例程序功能實現(xiàn) 118
4.9 QComboBox 121
4.9.1 QComboBox類 121
4.9.2 示例程序功能實現(xiàn) 122
4.10 QMainWindow和QAction 125
4.10.1 窗口界面可視化設計 125
4.10.2 QAction類 128
4.10.3 QToolBar類 130
4.10.4 QStatusBar類 130
4.10.5 混合式UI設計 131
4.10.6 QPlainTextEdit的使用 133
4.11 QToolButton和QListWidget 135
4.11.1 窗口界面可視化設計 135
4.11.2 QToolButton與界面補充創(chuàng)建 137
4.11.3 QListWidget的操作 140
4.11.4 創(chuàng)建右鍵快捷菜單 145
4.12 QTreeWidget 146
4.12.1 窗口界面可視化設計 146
4.12.2 QTreeWidget類 148
4.12.3 QTreeWidgetItem類 151
4.12.4 示例中QTreeWidget的操作 153
4.12.5 用QLabel和QPixmap顯示圖片 159
4.12.6 示例中QDockWidget的操作 160
4.13 QTableWidget 161
4.13.1 窗口界面可視化設計和初始化 161
4.13.2 QTableWidget類 163
4.13.3 QTableWidgetItem類 165
4.13.4 示例中QTableWidget的操作 166
第5章 模型/視圖結構 171
5.1 模型/視圖結構概述 171
5.1.1 模型/視圖結構基本原理 171
5.1.2 模型 172
5.1.3 視圖 172
5.1.4 代理 173
5.1.5 模型/視圖結構的一些概念 173
5.1.6 QAbstractItemModel類 175
5.1.7 QAbstractItemView類 177
5.2 QStringListModel和QListView 178
5.2.1 QStringListModel類 179
5.2.2 示例程序功能實現(xiàn) 179
5.3 QStandardItemModel和QTableView 182
5.3.1 QTableView類 183
5.3.2 QStandardItemModel類 183
5.3.3 QStandardItem類 185
5.3.4 QItemSelectionModel類 187
5.3.5 示例程序功能實現(xiàn) 188
5.4 自定義代理 194
5.4.1 自定義代理的功能 195
5.4.2 QStyledItemDelegate類 195
5.4.3 設計自定義代理類 196
5.4.4 使用自定義代理類 199
5.5 QFileSystemModel和QTreeView 199
5.5.1 QFileSystemModel類 200
5.5.2 QTreeView類 202
5.5.3 示例程序功能實現(xiàn) 202
第6章 事件處理 205
6.1 Qt的事件系統(tǒng) 205
6.1.1 事件的產(chǎn)生和派發(fā) 205
6.1.2 事件類和事件類型 207
6.1.3 事件的處理 209
6.1.4 典型事件處理示例 210
6.2 事件與信號 213
6.2.1 函數(shù)event()的作用 213
6.2.2 事件與信號編程示例 214
6.3 事件過濾器 216
6.3.1 事件過濾器工作原理 217
6.3.2 事件過濾器編程示例 217
6.4 拖放事件與拖放操作 218
6.4.1 拖放操作相關事件 219
6.4.2 外部文件拖放操作示例 219
6.5 具有拖放操作功能的組件 222
6.5.1 示例窗口類定義和初始化 223
6.5.2 拖放操作屬性的顯示 224
6.5.3 拖放操作屬性的設置 226
6.5.4 通過事件過濾器實現(xiàn)項的刪除 227
第7章 對話框和多窗口程序設計 228
7.1 標準對話框 228
7.1.1 QFileDialog對話框 229
7.1.2 QColorDialog對話框 231
7.1.3 QFontDialog對話框 232
7.1.4 QProgressDialog對話框 232
7.1.5 QInputDialog標準輸入對話框 233
7.1.6 QMessageBox消息對話框 236
7.2 設計和使用自定義對話框 237
7.2.1 QDialog類 238
7.2.2 示例功能概述 239
7.2.3 主窗口類定義和初始化 240
7.2.4 TDialogSize對話框的設計和使用 242
7.2.5 TDialogHeaders對話框的設計和使用 244
7.2.6 TDialogLocate對話框的設計和使用 245
7.3 多窗口應用程序設計 249
7.3.1 窗口類重要特性的設置 249
7.3.2 多窗口應用程序設計示例 251
7.4 MDI應用程序設計 258
7.4.1 QMdiArea類 259
7.4.2 QMdiSubWindow類 261
7.4.3 MDI應用程序設計示例 261
7.5 Splash與登錄窗口 266
7.5.1 Splash登錄對話框的界面設計和類定義 267
7.5.2 TDialogLogin類的功能實現(xiàn) 268
7.5.3 TDialogLogin對話框的使用 271
第8章 文件系統(tǒng)操作和文件讀寫 272
8.1 文件操作相關類概述 272
8.1.1 輸入輸出設備類 272
8.1.2 文件讀寫操作類 273
8.1.3 特定格式文件的讀寫 274
8.2 目錄和文件操作 274
8.2.1 示例設計概述 275
8.2.2 QCoreApplication類 277
8.2.3 QFile類 277
8.2.4 QFileInfo類 279
8.2.5 QDir類 280
8.2.6 QTemporaryDir類 283
8.2.7 QTemporaryFile類 284
8.2.8 QFileSystemWatcher類 285
8.3 讀寫文本文件 287
8.3.1 用QFile讀寫文本文件 287
8.3.2 用QSaveFile保存文件 291
8.3.3 結合使用QFile和QTextStream讀寫文本文件 292
8.4 讀寫二進制文件 295
8.4.1 基礎知識和工具軟件 295
8.4.2 QDataStream類 297
8.4.3 使用預定義編碼方式讀寫文件 299
8.4.4 使用原始二進制數(shù)據(jù)方式讀寫文件 308
第9章 數(shù)據(jù)庫 316
9.1 Qt數(shù)據(jù)庫編程概述 316
9.1.1 Qt SQL模塊 316
9.1.2 SQLite數(shù)據(jù)庫簡介 318
9.1.3 本章示例數(shù)據(jù)庫 318
9.2 QSqlTableModel的使用 319
9.2.1 主要的類和基本工作原理 320
9.2.2 示例窗口界面設計和類定義 323
9.2.3 打開數(shù)據(jù)庫 324
9.2.4 其他功能的實現(xiàn) 332
9.3 QSqlQueryModel的使用 336
9.3.1 QSqlQueryModel類 336
9.3.2 使用QSqlQueryModel實現(xiàn)數(shù)據(jù)查詢 337
9.4 QSqlQuery的使用 341
9.4.1 QSqlQuery類 342
9.4.2 QSqlQuery使用示例 344
9.5 QSqlRelationalTableModel的使用 352
9.5.1 數(shù)據(jù)表之間的關系 352
9.5.2 QSqlRelationalTableModel類的作用 353
9.5.3 QSqlRelationalTableModel類的主要接口函數(shù) 354
9.5.4 示例程序設計 355
第 10章 繪圖 358
10.1 QPainter繪圖 358
10.1.1 QPainter繪圖系統(tǒng) 358
10.1.2 創(chuàng)建示例 360
10.1.3 QPen的主要功能 361
10.1.4 QBrush的主要功能 362
10.1.5 漸變填充 363
10.1.6 QPainter繪制基本圖形 367
10.2 坐標系統(tǒng)和坐標變換 370
10.2.1 坐標變換 370
10.2.2 坐標變換繪圖實例 371
10.2.3 視口和窗口 373
10.2.4 繪圖疊加的效果 375
10.3 圖形/視圖架構 376
10.3.1 場景、視圖與圖形項 377
10.3.2 圖形/視圖架構的坐標系 378
10.3.3 圖形/視圖架構相關的類 379
10.3.4 圖形/視圖架構示例程序 381
10.4 圖像處理 386
10.4.1 圖像表示和圖像處理概述 387
10.4.2 QImage類 389
10.4.3 圖像處理示例程序 393
10.4.4 打印功能的實現(xiàn) 401
第 11章 自定義插件和庫 406
11.1 設計和使用自定義界面組件 406
11.1.1 設計自定義界面組件類TBattery 406
11.1.2 使用自定義界面組件 409
11.2 設計和使用Qt Designer Widget插件 410
11.2.1 創(chuàng)建Qt Designer Widget插件項目 411
11.2.2 插件項目中各文件的功能實現(xiàn) 412
11.2.3 插件的編譯與安裝 415
11.2.4 使用自定義Widget插件 416
11.3 創(chuàng)建和使用靜態(tài)庫 418
11.3.1 創(chuàng)建靜態(tài)庫 418
11.3.2 使用靜態(tài)庫 420
11.4 創(chuàng)建和使用共享庫 421
11.4.1 創(chuàng)建共享庫 421
11.4.2 使用共享庫 423
第 12章 Qt Charts 425
12.1 Qt Charts模塊概述 425
12.1.1 一個簡單的QChart繪圖程序 425
12.1.2 圖表的主要組成部分 427
12.2 通過QChart繪制折線圖 429
12.2.1 主窗口類定義和初始化 429
12.2.2 QPen屬性設置對話框設計 432
12.2.3 圖表各組成部件的屬性設置 434
12.3 圖表交互操作 444
12.3.1 圖表交互操作概述 444
12.3.2 自定義圖表視圖類TChartView 446
12.3.3 主窗口設計和初始化 449
12.3.4 交互操作功能的實現(xiàn) 451
12.4 餅圖和各種柱狀圖 455
12.4.1 主窗口設計和數(shù)據(jù)準備 455
12.4.2 柱狀圖 459
12.4.3 堆疊柱狀圖 464
12.4.4 百分比柱狀圖 465
12.4.5 餅圖 467
第 13章 Qt Data Visualization 470
13.1 Data Visualization模塊概述 470
13.2 三維柱狀圖 471
13.2.1 示例主窗口設計 472
13.2.2 初始化創(chuàng)建三維柱狀圖 473
13.2.3 其他功能的實現(xiàn) 477
13.3 三維散點圖 483
13.3.1 繪制三維散點圖 483
13.3.2 散點數(shù)據(jù)管理 486
13.4 三維曲面圖 487
13.4.1 一般的三維曲面圖 488
13.4.2 三維地形圖 493
第 14章 多線程 495
14.1 使用QThread創(chuàng)建多線程程序 495
14.1.1 QThread類簡介 495
14.1.2 擲骰子的多線程應用程序 496
14.2 線程同步 500
14.2.1 線程同步的概念 500
14.2.2 基于互斥量的線程同步 501
14.2.3 基于讀寫鎖的線程同步 504
14.2.4 基于條件等待的線程同步 506
14.2.5 基于信號量的線程同步 510
第 15章 網(wǎng)絡 515
15.1 主機信息查詢 515
15.1.1 QHostInfo類和QNetworkInterface類 515
15.1.2 QHostInfo類的使用 516
15.1.3 QNetworkInterface類的使用 518
15.2 TCP通信 519
15.2.1 TCP通信相關的類 520
15.2.2 TCP服務器端程序設計 522
15.2.3 TCP客戶端程序設計 526
15.3 UDP通信 528
15.3.1 QUdpSocket類 528
15.3.2 UDP單播和廣播 529
15.3.3 UDP組播 533
15.4 基于HTTP的網(wǎng)絡應用程序 536
第 16章 多媒體 540
16.1 多媒體模塊功能概述 540
16.2 播放音頻 541
16.2.1 QMediaPlayer功能概述 541
16.2.2 基于QMediaPlayer的音樂播放器 543
16.2.3 使用QSoundEffect播放音效文件 549
16.3 錄制音頻 549
16.3.1 QMediaRecorder類功能概述 549
16.3.2 示例功能實現(xiàn) 550
16.4 采集和播放原始音頻數(shù)據(jù) 554
16.4.1 QAudioSource類和QAudioSink類功能概述 554
16.4.2 示例程序功能概述 556
16.4.3 采集原始音頻數(shù)據(jù) 557
16.4.4 播放原始音頻數(shù)據(jù) 563
16.5 播放視頻文件 565
16.5.1 在QVideoWidget上播放視頻文件 565
16.5.2 在QGraphicsVideoItem上播放視頻文件 569
16.6 攝像頭的使用 570
16.6.1 攝像頭控制概述 570
16.6.2 示例主窗口類定義和初始化 573
16.6.3 拍照 578
16.6.4 錄像 579
第 17章 串口編程 581
17.1 Qt Serial Port模塊概述 581
17.1.1 QSerialPortInfo類 581
17.1.2 QSerialPort類 581
17.2 串口編程示例:ESP8266模塊通信程序 583
17.2.1 自定義標簽類TMyLabel的設計和使用 585
17.2.2 主窗口類定義和初始化 585
17.2.3 通過串口讀寫數(shù)據(jù) 587
第 18章 其他工具軟件和技術 591
18.1 多語言界面 591
18.1.1 多語言界面程序設計概述 591
18.1.2 多語言界面程序設計示例 593
18.2 Qt樣式表 597
18.2.1 QSS的作用 597
18.2.2 QSS的句法 598
18.2.3 樣式表的使用 603
18.3 Qt應用程序的發(fā)布和安裝 605
18.3.1 Windows平臺上的Qt應用程序發(fā)布 605
18.3.2 制作安裝文件 607
附錄 縮略詞 612
你還可能感興趣
我要評論
|