Qt 6.x從入門到精通

Qt 6.x從入門到精通

《Qt 6.x從入門到精通》是清華大學出版社出版的一本圖書,作者是朱文偉。

基本介紹

  • 中文名:《Qt 6.x從入門到精通》 
  • 作者:朱文偉
  • 出版時間:2022年9月1日
  • 出版社:清華大學出版社
  • ISBN:9787302614487
  • 定價:119 元
  • 開本:16 開
內容簡介,圖書目錄,作者簡介,

內容簡介

Qt是一個跨平台C++圖形用戶界面應用程式開發框架,既可以開發GUI程式,也可以開發非GUI程式,比如控制台工具和伺服器等,在軟體工業界有廣泛的套用。Qt目前已經是桌面編程工具的霸主。
本書分為15章,內容包括Qt 6概述、開發環境、編程基礎、對話框程式設計、控制項設計、資料庫編程、調用Windows動態程式庫、使用Linux靜態庫和共享庫、檔案編程、選單欄/工具列和狀態欄、圖形編程、多執行緒編程、多媒體編程、網路編程、應用程式發布。Qt 6相對以前的版本,進行重新設計,捨去了很多舊類、舊函式,也引入了很多新類、新函式。
本書適合Qt編程初學者、Qt跨平台套用開發人員、Qt界面設計人員,也適合作為高等院校和培訓機構計算機軟體相關專業的教材。

圖書目錄

第1章 Qt概述 1
1.1 Qt簡介 1
1.2 發展歷程 2
1.3 Qt的優點 2
1.4 Qt和MFC的比較 3
1.5 Qt的主要套用領域 6
1.6 Qt 6的變化 8
第2章 搭建Qt 6開發環境 10
2.1 搭建Windows下的Qt開發環境 10
2.1.1 線上安裝Qt 6 10
2.1.2 在Qt Creator中使用單步調試功能 18
2.1.3 為老項目部署Qt 4.7.4開發環境 19
2.2 搭建Linux下的Qt開發環境 24
2.2.1 準備虛擬機Linux 24
2.2.2 虛擬機Linux上網 30
2.2.3 下載Qt 6.2 43
2.2.4 下載安裝依賴包 44
2.2.5 安裝Qt 44
2.2.6 第一個Linux下的Qt程式 47
2.2.7 再次做個快照 50
2.3 Qt Creator的一些小技巧 50
2.3.1 添加刪除行的快捷鍵 50
2.3.2 改變編輯器的顏色 51
2.3.3 設定默認的構建套件 52
2.3.4 在Locals視窗中查看變數值 52
第3章 Qt編程基礎 53
3.1 Qt基本數據類型 55
3.2 位元組數組類QByteArray 56
3.2.1 初始化 56
3.2.2 訪問某個元素 57
3.2.3 截取子字元串 58
3.2.4 獲取位元組數組的大小 59
3.2.5 數據轉換與處理 59
3.2.6 字母大小寫的轉換 62
3.2.7 字元串數值轉為各類數值 63
3.2.8 QByteArray與char*互轉 63
3.2.9 QByteArray與std::string互轉 64
3.2.10 與字元串QString互轉 64
3.2.11 QByteArray與自定義結構體之間的轉化 65
3.2.12 判斷是否為空 66
3.2.13 向前搜尋和向後搜尋 66
3.2.14 插入 67
3.3 字元類QChar 68
3.3.1 QChar的編碼 68
3.3.2 QChar類的接口 69
3.4 字元串類QString 70
3.4.1 QString類的特點 70
3.4.2 QString類的常用操作 71
3.5 列表類QList 83
3.6 字元串列表類QStringList 87
3.7 Qt和字元集 90
3.7.1 計算機上的3種字元集 90
3.7.2 Qt Creator開發環境對Unicode和多位元組的支持 93
3.7.3 在Qt Creator中使用中文字元的兩種方式 95
3.8 認識Qt界面Widgets 95
3.9 Qt中與界面相關的類庫 96
3.9.1 QObject類 97
3.9.2 QWidget類 98
3.9.3 和主視窗有關的類 98
3.9.4 對話框類和控制項類 98
3.9.5 Qt Widgets應用程式類型 99
3.10 獲取系統當前時間 102
3.11 事件 104
3.11.1 基本概念 104
3.11.2 事件的描述 104
3.11.3 事件的類型 105
3.11.4 事件的處理 105
3.11.5 事件的傳遞 105
3.12 信號 106
3.12.1 基本概念 106
3.12.2 信號和槽的連線 107
3.12.3 信號和事件的區別 108
第4章 Qt對話框程式設計 109
4.1 對話框程式設計概述 109
4.2 對話框的擴展性 109
4.3 對話框的默認按鈕 109
4.4 QDialog類 110
4.5 初始化對話框的地方 112
4.6 一個簡單的對話框程式 113
4.7 設定對話框的屬性 114
4.7.1 對話框的標題 115
4.7.2 Qt中的坐標系統 116
4.7.3 geometry屬性 118
4.7.4 minimumSize屬性和maximumSize屬性 119
4.7.5 設定對話框的尺寸、圖示和背景圖片 119
4.8 在對話框上使用按鈕控制項 124
4.8.1 顯示控制項工具箱 124
4.8.2 拖動一個按鈕到對話框 124
4.8.3 選中按鈕控制項 125
4.8.4 移動對話框上的按鈕控制項 125
4.8.5 對齊對話框上的按鈕控制項 125
4.8.6 調整按鈕控制項的大小 125
4.8.7 刪除對話框上的按鈕控制項 125
4.8.8 為按鈕控制項添加事件處理函式 126
4.9 模態對話框和非模態對話框 128
4.10 通用對話框 131
4.10.1 訊息對話框 132
4.10.2 檔案對話框 139
4.10.3 字型對話框QFontDialog類 146
4.10.4 顏色對話框 149
4.11 移動對話框到指定位置 151
4.12 在對話框非標題欄區域實現拖動 152
第5章 Qt控制項設計 154
5.1 控制項概述 154
5.2 對話框程式設計概述 155
5.3 按鈕類控制項 155
5.3.1 概述 155
5.3.2 按鈕類的父類QAbstractButton 156
5.3.3 按壓按鈕 156
5.3.4 工具按鈕 159
5.3.5 單選按鈕 162
5.3.6 複選框 165
5.3.7 對話框組合按鈕 169
5.4 列表視圖控制項 170
5.4.1 抽象數據項模型QAbstractItemModel 171
5.4.2 字元串列表數據模型QStringListModel 172
5.4.3 檔案系統數據模型QFileSystemModel 175
5.5 樹形視圖控制項 178
5.5.1 標準數據項QStandardItem 178
5.5.2 標準數據項模型QStandardItemModel 179
5.5.3 添加表頭 182
5.5.4 隱藏表頭 182
5.5.5 表項的操作 183
5.6 組合框 190
5.6.1 添加內容項和設定圖示 190
5.6.2 刪除某個內容項 191
5.6.3 清空組合框內容 191
5.6.4 組合框列表項的訪問 191
5.6.5 選擇項發生變化時的信號 191
5.7 字型組合框 194
5.8 標籤控制項 195
5.9 分組框控制項 201
5.10 正則表達式和QregExp類 201
5.10.1 正則表達式的規則 202
5.10.2 正則表達式中的一些高級規則 205
5.10.3 其他通用規則 207
5.10.4 正則表達式屬性 208
5.10.5 QRegularExpression類 209
5.11 行編輯框 211
5.11.1 常用成員函式 212
5.11.2 用於描述輸入框如何顯示其內容的枚舉值 212
5.11.3 對齊方式 213
5.11.4 獲取和設定選擇的文本 213
5.11.5 常用信號 213
5.11.6 限制字元的輸入 213
5.12 進度條控制項 219
5.12.1 QProgressBar類的常用函式 219
5.12.2 進度方向 220
5.12.3 文本顯示 220
5.12.4 繁忙指示 221
5.13 布局管理器 222
5.13.1 基本布局管理器QBoxLayout類 222
5.13.2 柵格布局管理器QGridLayout類 223
5.13.3 窗體布局管理器QFormLayout類 223
5.13.4 棧布局管理器QStackedLayout類 223
第6章 Qt資料庫編程 225
6.1 資料庫的基本概念 225
6.2 Qt SQL模組 226
6.3 訪問資料庫 228
6.3.1 訪問Access資料庫 228
6.3.2 訪問SQLite資料庫 233
第7章 Qt調用Windows下的動態程式庫 240
7.1 動態程式庫的定義 240
7.2 使用動態程式庫的好處 241
7.3 動態程式庫的分類 242
7.4 Win32 DLL的開發和Qt調用 242
7.4.1 在DLL中導出全局函式並調用 242
7.4.2 在VC++中使用DLL的導出函式 246
7.4.3 函式DllMain 251
7.4.4 在Qt中調用DLL的導出函式 253
7.4.5 在Qt中調用DLL的導出變數 266
7.4.6 在DLL中導出類 273
7.4.7 在Qt項目中調用DLL的導出類 276
7.4.8 Qt生成DLL 278
7.4.9 其他語言調用Qt生成的DLL 280
7.5 MFC下DLL的開發和Qt的調用 287
7.5.1 MFC DLL的生成 287
7.5.2 在Qt下調用MFC DLL 292
第8章 在Qt中使用Linux的靜態庫和動態庫 294
8.1 Qt程式調用靜態庫和動態庫 294
8.1.1 庫的基本概念 294
8.1.2 庫的分類 294
8.2 靜態庫 295
8.2.1 靜態庫的基本概念 295
8.2.2 靜態庫的創建和使用 295
8.2.3 在Qt項目中使用靜態庫 297
8.3 動態庫 298
8.3.1 動態庫的基本概念 298
8.3.2 動態庫的創建和使用 299
8.3.3 在Qt中使用動態庫 303
第9章 Qt檔案編程 306
9.1 輸入/輸出設備類 306
9.2 檔案類QFile 306
第10章 Qt選單欄、工具列和狀態欄 319
10.1 選單的設計與開發 319
10.1.1 選單欄類QMenuBar 320
10.1.2 動作類QAction 321
10.1.3 選單類QMenu 321
10.1.4 以可視化方式添加選單 327
10.1.5 快捷選單 328
10.2 工具列的設計與開發 330
10.3 狀態欄的設計與開發 334
10.3.1 將子選單項提示信息顯示在狀態欄上 337
10.3.2 臨時信息不需要標籤 338
10.3.3 在狀態欄上使用按鈕 338
第11章 Qt圖形編程 340
11.1 概述 340
11.2 重繪事件處理函式paintEvent 341
11.3 點的坐標QPoint 343
11.3.1 成員函式 343
11.3.2 相關非成員 343
11.3.3 定義一個點 344
11.3.4 計算歐氏距離
(兩點之間的距離) 344
11.3.5 獲取和設定點的分量值 345
11.3.6 利用x和y坐標的引用值實現自加和自減 345
11.3.7 利用重載運算符計算點坐標 346
11.4 矩形尺寸QSize 346
11.4.1 成員函式 347
11.4.2 非成員函式 347
11.4.3 定義一個矩形尺寸 348
11.4.4 獲取和設定矩形尺寸的寬度和高度 349
11.4.5 利用寬度和高度的引用值實現自加和自減 349
11.4.6 縮放矩形尺寸 350
11.4.7 利用重載運算符計算矩形尺寸 350
11.5 顏色 351
11.5.1 構造顏色 352
11.5.2 獲取和設定RGB分量 352
11.5.3 QColor、QString和QRgb互轉 352
11.6 畫筆類QPen 353
11.6.1 畫筆的屬性 354
11.6.2 構造一支畫筆 356
11.6.3 獲取或設定畫筆顏色 357
11.6.4 獲取或設定畫筆寬度 357
11.6.5 獲取或設定畫筆線型樣式 357
11.7 畫刷 357
11.8 畫圖類QPainter 360
11.8.1 畫直線 360
11.8.2 畫矩形 360
11.8.3 畫橢圓和圓 361
11.8.4 繪製文本 361
第12章 Qt多執行緒編程 364
12.1 使用多執行緒的好處 364
12.2 多執行緒編程的基本概念 365
12.2.1 作業系統和多執行緒 365
12.2.2 執行緒的基本概念 366
12.2.3 執行緒的狀態 366
12.2.4 執行緒函式 367
12.2.5 執行緒標識 367
12.2.6 Qt多執行緒編程的3種方式 368
12.3 在Qt中使用POSIX多執行緒庫 368
12.3.1 執行緒的創建 368
12.3.2 執行緒的屬性 373
12.3.3 執行緒的結束 384
12.3.4 執行緒退出時的清理機會 392
12.4 在Qt中使用C++ 11執行緒類 397
12.4.1 執行緒的創建 398
12.4.2 執行緒的標識符 404
12.4.3 當前執行緒this_thread 405
12.5 使用Qt自身的執行緒類 409
12.5.1 QThread類的基本使用 409
12.5.2 執行緒間通信 412
第13章 Qt多媒體編程 418
13.1 概述 418
13.2 媒體設備類QMediaDevices 423
13.3 音頻設備類QAudioDevice 425
13.4 音頻輸出類QAudioOutput 427
13.5 媒體播放類QMediaPlayer 430
13.5.1 成員函式和槽函式 430
13.5.2 重要信號 432
13.5.3 播放音頻 432
13.5.4 播放視頻 433
13.6 視頻小部件類QVideoWidget 437
13.7 相機設備類QCameraDevice 440
13.8 相機接口類QCamera 441
13.9 媒體捕獲會話類
QmediaCaptureSession 444
13.10 視頻部件類QVideoWidget 444
13.11 圖片捕獲類QImageCapture 445
13.12 編碼和記錄視頻類QMediaRecorder 446
第14章 Qt網路編程 455
14.1 TCP/IP協定 455
14.1.1 TCP/IP協定的基本概念 455
14.1.2 TCP/IP協定的分層結構 455
14.2 獲取主機的網路信息 457
14.2.1 QHostInfo類 457
14.2.2 查詢本機的主機名 458
14.2.3 查詢本機的IP位址 459
14.3 TCP編程 461
第15章 Qt應用程式發布 468

作者簡介

朱文偉,名校計算機專業統招碩士,20年C\C++、Java開發經驗。主導開發過密碼、圖形、人工智慧等產品。精通Linux、Windows系統開發及資料庫開發技術。著有圖書《Windows C/C++加密解密實戰》《密碼學原理與Java實現》《Linux C與C++ 一線開發實踐》《Visual C++2017從入門到精通》。

相關詞條

熱門詞條

聯絡我們