Qt 6 C++開發指南

Qt 6 C++開發指南

《Qt 6 C++開發指南》是2023年人民郵電出版社出版的圖書,作者是王維波。

基本介紹

  • 中文名:Qt 6 C++開發指南
  • 作者:王維波
  • 出版時間:2023年1月
  • 出版社:人民郵電出版社
  • ISBN:9787115602404 
  • 開本:16 開
  • 裝幀:平裝
內容簡介,作者簡介,圖書目錄,

內容簡介

本書以Qt 6為開發平台,系統介紹如何用Qt C++開發應用程式。首先介紹Qt C++應用程式的基本結構、界面可視化設計和布局管理方法、元對象系統的功能及其套用等基本內容,然後深入講解常用界面組件、模型/視圖結構、事件處理、對話框和多視窗程式設計、檔案讀寫等功能的編程方法,以及資料庫、多執行緒、網路、多媒體、圖表、數據可視化、串口通信等功能模組的使用。本書內容豐富,輔以大量精心設計的完整示例程式,涵蓋進行GUI程式設計所需掌握的各種技術主題。

作者簡介

王維波,博士,中國石油大學(華東)教師,主要從事儀器儀表開發的教學和科研工作。著有《STM32Cube 高效開發教程》,曾開發多個工業套用嵌入式系統和專業數據處理軟體。
栗寶鵑,博士,中水北方勘測設計研究有限責任公司高級工程師,主要從事工程勘察、綜合地球物理探測與檢測中的數據處理、解譯與成像等工程套用和研究工作。
侯春望,碩士,中國石油大學(華東)教師,主要從事單片機系統和套用軟體開發方面的教學和研究工作,精通Qt C++ 編程,曾開發多個專業套用軟體。

圖書目錄

第 1章 認識Qt  1
1.1 Qt簡介  1
1.1.1 Qt的跨平台開發能力  1
1.1.2 Qt的許可類型和安裝包  2
1.1.3 Qt支持的開發語言  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 示例功能實現  33
2.4 使用CMake構建系統  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 數據類型定義  46
3.2.2 函式  46
3.2.3 宏定義  47
3.3 Qt的元對象系統  47
3.3.1 元對象系統概述  48
3.3.2 運行時類型信息  50
3.3.3 屬性系統  51
3.3.4 信號與槽  53
3.3.5 對象樹  57
3.3.6 元對象系統功能測試示例  58
3.4 容器類  63
3.4.1 順序容器類  63
3.4.2 關聯容器類  65
3.4.3 遍歷容器的數據  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類的主要屬性和接口函式  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字元串與數值的轉換  94
4.3.7 QString字元串與數值轉換示例  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 示例程式功能實現  104
4.6 QSlider和QProgressBar  106
4.6.1 各組件類的主要屬性和接口函式  106
4.6.2 示例程式功能實現  108
4.7 日期時間數據  109
4.7.1 表示日期時間數據的類  109
4.7.2 日期時間數據的界面組件  113
4.7.3 示例程式功能實現  115
4.8 QTimer和QElapsedTimer  116
4.8.1 QTimer類  116
4.8.2 QElapsedTimer類  117
4.8.3 示例程式功能實現  118
4.9 QComboBox  121
4.9.1 QComboBox類  121
4.9.2 示例程式功能實現  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與界面補充創建  137
4.11.3 QListWidget的操作  140
4.11.4 創建右鍵快捷選單  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 示例程式功能實現  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 示例程式功能實現  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 示例程式功能實現  202
第6章 事件處理  205
6.1 Qt的事件系統  205
6.1.1 事件的產生和派發  205
6.1.2 事件類和事件類型  207
6.1.3 事件的處理  209
6.1.4 典型事件處理示例  210
6.2 事件與信號  213
6.2.1 函式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 通過事件過濾器實現項的刪除  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類的功能實現  268
7.5.3 TDialogLogin對話框的使用  271
第8章 檔案系統操作和檔案讀寫  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 使用原始二進制數據方式讀寫檔案  308
第9章 資料庫  316
9.1 Qt資料庫編程概述  316
9.1.1 Qt SQL模組  316
9.1.2 SQLite資料庫簡介  318
9.1.3 本章示例資料庫  318
9.2 QSqlTableModel的使用  319
9.2.1 主要的類和基本工作原理  320
9.2.2 示例視窗界面設計和類定義  323
9.2.3 打開資料庫  324
9.2.4 其他功能的實現  332
9.3 QSqlQueryModel的使用  336
9.3.1 QSqlQueryModel類  336
9.3.2 使用QSqlQueryModel實現數據查詢  337
9.4 QSqlQuery的使用  341
9.4.1 QSqlQuery類  342
9.4.2 QSqlQuery使用示例  344
9.5 QSqlRelationalTableModel的使用  352
9.5.1 數據表之間的關係  352
9.5.2 QSqlRelationalTableModel類的作用  353
9.5.3 QSqlRelationalTableModel類的主要接口函式  354
9.5.4 示例程式設計  355
第 10章 繪圖  358
10.1 QPainter繪圖  358
10.1.1 QPainter繪圖系統  358
10.1.2 創建示例  360
10.1.3 QPen的主要功能  361
10.1.4 QBrush的主要功能  362
10.1.5 漸變填充  363
10.1.6 QPainter繪製基本圖形  367
10.2 坐標系統和坐標變換  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 列印功能的實現  401
第 11章 自定義外掛程式和庫  406
11.1 設計和使用自定義界面組件  406
11.1.1 設計自定義界面組件類TBattery  406
11.1.2 使用自定義界面組件  409
11.2 設計和使用Qt Designer Widget外掛程式  410
11.2.1 創建Qt Designer Widget外掛程式項目  411
11.2.2 外掛程式項目中各檔案的功能實現  412
11.2.3 外掛程式的編譯與安裝  415
11.2.4 使用自定義Widget外掛程式  416
11.3 創建和使用靜態庫  418
11.3.1 創建靜態庫  418
11.3.2 使用靜態庫  420
11.4 創建和使用共享庫  421
11.4.1 創建共享庫  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 互動操作功能的實現  451
12.4 餅圖和各種柱狀圖  455
12.4.1 主視窗設計和數據準備  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 初始化創建三維柱狀圖  473
13.2.3 其他功能的實現  477
13.3 三維散點圖  483
13.3.1 繪製三維散點圖  483
13.3.2 散點數據管理  486
13.4 三維曲面圖  487
13.4.1 一般的三維曲面圖  488
13.4.2 三維地形圖  493
第 14章 多執行緒  495
14.1 使用QThread創建多執行緒程式  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章 網路  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的網路應用程式  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 示例功能實現  550
16.4 採集和播放原始音頻數據  554
16.4.1 QAudioSource類和QAudioSink類功能概述  554
16.4.2 示例程式功能概述  556
16.4.3 採集原始音頻數據  557
16.4.4 播放原始音頻數據  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 通過串口讀寫數據  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應用程式的發布和安裝  605
18.3.1 Windows平台上的Qt應用程式發布  605
18.3.2 製作安裝檔案  607
附錄 縮略詞  612

相關詞條

熱門詞條

聯絡我們