基本介紹
- 中文名:Qt 5.12實戰
- 作者:朱晨冰、李建英
- 出版時間:2020年11月1日
- 出版社:清華大學出版社
- ISBN:9787302564775
- 定價:119 元
- 開本:16 開
- 裝幀:平裝
內容簡介,作者簡介,圖書目錄,
內容簡介
Qt是一個跨平台C++圖形用戶界面應用程式開發框架,既可以開發GUI程式,也可以開發非GUI程式,比如控制台工具和伺服器等,在軟體工業界有廣泛的套用。
本書分為15章,內容包括Qt概述、開發環境、編程基礎、對話框程式設計、控制項設計、資料庫編程、調用Windows動態程式庫、使用Linux靜態庫和共享庫、檔案編程、選單欄/工具列和狀態欄、圖形編程、多執行緒編程、多媒體編程、網路編程、應用程式發布。
本書既適合Qt編程初學者、Qt跨平台套用開發人員閱讀,也適合作為高等院校和培訓學校相關專業的教材。
作者簡介
朱晨冰,計算機套用專業碩士,10多年C\C++ 開發經驗。精通Linux、Windows系統開發及資料庫開發技術。
李建英,計算機套用專業碩士,近10年項目管理經驗,參與過多個軟體產品的開發,精通C\C++ 程式語言。
圖書目錄
第1章 Qt概述 1
1.1 Qt簡介 1
1.2 發展歷程 1
1.3 Qt的優點 2
1.4 Qt和MFC的比較 3
1.5 Qt的主要套用領域 6
1.6 Qt的版本 8
第2章 搭建Qt 5.12開發環境 11
2.1 搭建Windows下的Qt開發環境 11
2.1.1 搭建基於MSVC編譯器的開發環境 12
2.1.2 搭建基於GCC編譯器的開發環境 34
2.1.3 部署Qt 4.7.4開發環境 35
2.2 搭建Linux下的Qt開發環境 40
2.2.1 準備虛擬機Linux 40
2.2.2 下載Qt 5.12.2 47
2.2.3 下載安裝依賴包 48
2.2.4 安裝Qt 48
2.2.5 配置環境變數 49
2.2.6 驗證是否安裝成功 50
2.2.7 啟動Qt Creator 50
2.2.8 第一個Linux下的Qt程式 50
2.2.9 做個快照 52
2.3 Qt Creator的一些小技巧 53
2.3.1 添加刪除行的快捷鍵 53
2.3.2 改變編輯器的顏色 53
2.3.3 設定默認的構建套件 54
第3章 Qt編程基礎 55
3.1 Qt基本數據類型 57
3.2 位元組數組類QByteArray 58
3.2.1 初始化 59
3.2.2 訪問某個元素 60
3.2.3 截取子字元串 60
3.2.4 獲取位元組數組的大小 61
3.2.5 數據轉換與處理 62
3.2.6 字母大小寫的轉換 65
3.2.7 字元串數值轉為各類數值 65
3.2.8 QByteArray與char*互轉 66
3.2.9 QByteArray與std::string互轉 67
3.2.10 與字元串QString互轉 67
3.2.11 QByteArray與自定義結構體之間的轉化 68
3.2.12 判斷是否為空 69
3.2.13 向前搜尋和向後搜尋 70
3.2.14 插入 70
3.3 字元類QChar 71
3.3.1 QChar的編碼 71
3.3.2 Qchar類的接口 72
3.4 字元串類QString 73
3.4.1 Qstring類的特點 74
3.4.2 Qstring類的常用操作 74
3.5 列表類QList 88
3.6 字元串列表類QStringList 92
3.7 Qt和字元集 96
3.7.1 計算機上的3種字元集 96
3.7.2 VC-Qt開發環境對Unicode和多位元組的支持 99
3.7.3 Qt Creator開發環境對Unicode和多位元組的支持 102
3.7.4 在Qt Creator中使用中文字元的兩種方式 103
3.8 認識Qt界面Widgets 104
3.9 Qt中與界面相關的類庫 105
3.9.1 QObject類 106
3.9.2 QWidget類 107
3.9.3 和主視窗有關的類 107
3.9.4 對話框類和控制項類 108
3.9.5 Qt Widgets應用程式類型 108
3.10 獲取系統當前時間 115
3.11 事件 116
3.11.1 基本概念 116
3.11.2 事件的描述 117
3.11.3 事件的類型 117
3.11.4 事件的處理 117
3.11.5 事件的傳遞 118
3.12 信號 119
3.12.1 基本概念 119
3.12.2 信號和槽的連線 119
3.12.3 信號和事件的區別 121
第4章 Qt對話框程式設計 122
4.1 對話框程式設計概述 122
4.2 對話框的擴展性 122
4.3 對話框的默認按鈕 122
4.4 QDialog類 123
4.5 初始化對話框的地方 125
4.6 一個簡單的對話框程式 126
4.7 設定對話框的屬性 129
4.7.1 對話框的標題 130
4.7.2 Qt中的坐標系統 132
4.7.3 geometry屬性 135
4.7.4 minimumSize屬性和maximumSize屬性 135
4.7.5 設定對話框的尺寸、圖示和背景圖片 136
4.8 在對話框上使用按鈕控制項 141
4.8.1 顯示控制項工具箱 141
4.8.2 拖動一個按鈕到對話框 141
4.8.3 選中按鈕控制項 142
4.8.4 移動對話框上的按鈕控制項 142
4.8.5 對齊對話框上的按鈕控制項 142
4.8.6 調整按鈕控制項的大小 142
4.8.7 刪除對話框上的按鈕控制項 143
4.8.8 為按鈕控制項添加事件處理函式 143
4.9 模態對話框和非模態對話框 145
4.10 通用對話框 149
4.10.1 訊息對話框 150
4.10.2 檔案對話框 159
4.10.3 字型對話框QFontDialog類 166
4.10.4 顏色對話框 169
4.11 移動對話框到指定位置 171
4.12 在對話框非標題欄區域實現拖動 172
第5章 Qt控制項設計 174
5.1 控制項概述 174
5.2 對話框程式設計概述 174
5.3 按鈕類控制項 175
5.3.1 概述 175
5.3.2 按鈕類的父類QAbstractButton 175
5.3.3 按壓按鈕 176
5.3.4 工具按鈕 179
5.3.5 單選按鈕 182
5.3.6 複選框 185
5.3.7 對話框組合按鈕 190
5.4 列表視圖控制項 191
5.4.1 抽象數據項模型QAbstractItemModel 192
5.4.2 字元串列表數據模型QStringListModel 193
5.4.3 檔案系統數據模型QDirModel 197
5.5 樹形視圖控制項 199
5.5.1 標準數據項QStandardItem 199
5.5.2 標準數據項模型QStandardItemModel 200
5.5.3 添加表頭 203
5.5.4 隱藏表頭 204
5.5.5 表項的操作 204
5.6 組合框 212
5.6.1 添加內容項和設定圖示 212
5.6.2 刪除某個內容項 213
5.6.3 清空組合框內容 213
5.6.4 組合框列表項的訪問 213
5.6.5 選擇項發生變化時的信號 213
5.7 字型組合框 216
5.8 標籤控制項 217
5.9 分組框控制項 224
5.10 正則表達式和QregExp類 224
5.10.1 正則表達式的規則 225
5.10.2 正則表達式中的一些高級規則 228
5.10.3 其他通用規則 230
5.10.4 正則表達式屬性 231
5.10.5 QregExp類 232
5.11 行編輯框 236
5.11.1 常用成員函式 236
5.11.2 用於描述輸入框如何顯示其內容的枚舉值 237
5.11.3 對齊方式 237
5.11.4 獲取和設定選擇的文本 237
5.11.5 常用信號 237
5.11.6 限制字元的輸入 238
5.12 進度條控制項 243
5.12.1 QProgressBar類的常用函式 244
5.12.2 進度方向 244
5.12.3 文本顯示 245
5.12.4 繁忙指示 246
5.13 布局管理器 247
5.13.1 基本布局管理器QBoxLayout類 247
5.13.2 柵格布局管理器QGridLayout類 248
5.13.3 窗體布局管理器QFormLayout類 248
5.13.4 棧布局管理器QStackedLayout類 248
第6章 Qt資料庫編程 250
6.1 資料庫的基本概念 250
6.2 Qt SQL模組 251
6.3 訪問資料庫 253
6.3.1 訪問Access資料庫 253
6.3.2 訪問SQLite資料庫 258
第7章 Qt調用Windows下的動態程式庫 266
7.1 動態程式庫的定義 266
7.2 使用動態程式庫的好處 267
7.3 動態程式庫的分類 268
7.4 Win32 DLL的開發和Qt調用 268
7.4.1 在DLL中導出全局函式並調用 268
7.4.2 在VC++中使用DLL的導出函式 272
7.4.3 函式DllMain( ) 278
7.4.4 在Qt中調用DLL的導出函式 281
7.4.5 在Qt中調用DLL的導出變數 295
7.4.6 在DLL中導出類 302
7.4.7 在Qt項目中調用DLL的導出類 306
7.4.8 Qt生成DLL 307
7.4.9 其他語言調用Qt生成的DLL 310
7.5 MFC下DLL的開發和Qt的調用 317
7.5.1 MFC DLL的生成 317
7.5.2 在Qt下調用MFC DLL 323
第8章 在Qt中使用Linux的靜態庫和動態庫 325
8.1 Qt程式調用靜態庫和動態庫 325
8.1.1 庫的基本概念 325
8.1.2 庫的分類 325
8.2 靜態庫 326
8.2.1 靜態庫的基本概念 326
8.2.2 靜態庫的創建和使用 326
8.2.3 在Qt項目中使用靜態庫 328
8.3 動態庫 329
8.3.1 動態庫的基本概念 329
8.3.2 動態庫的創建和使用 330
8.3.3 在Qt中使用動態庫 335
第9章 Qt檔案編程 337
9.1 輸入/輸出設備類 337
9.2 檔案類QFile 337
第10章 Qt選單欄、工具列和狀態欄 350
10.1 選單的設計與開發 350
10.1.1 選單欄類QMenuBar 351
10.1.2 動作類QAction 352
10.1.3 選單類QMenu 353
10.1.4 以可視化方式添加選單 358
10.1.5 快捷選單 360
10.2 工具列的設計與開發 361
10.3 狀態欄的設計與開發 366
10.3.1 將子選單項提示信息顯示在狀態欄上 369
10.3.2 臨時信息不需要標籤 370
10.3.3 在狀態欄上使用按鈕 370
第11章 Qt圖形編程 372
11.1 概述 372
11.2 重繪事件處理函式paintEvent( ) 373
11.3 點的坐標QPoint 375
11.3.1 成員函式 375
11.3.2 相關非成員 376
11.3.3 定義一個點 376
11.3.4 計算歐氏距離(兩點之間的距離) 376
11.3.5 獲取和設定點的分量值 377
11.3.6 利用x和y坐標的引用值實現自加和自減 378
11.3.7 利用重載運算符計算點坐標 378
11.4 矩形尺寸QSize 379
11.4.1 成員函式 379
11.4.2 非成員函式 380
11.4.3 定義一個矩形尺寸 381
11.4.4 獲取和設定矩形尺寸的寬度和高度 381
11.4.5 利用寬度和高度的引用值實現自加和自減 382
11.4.6 縮放矩形尺寸 382
11.4.7 利用重載運算符計算矩形尺寸 383
11.5 顏色 384
11.5.1 構造顏色 385
11.5.2 獲取和設定RGB分量 385
11.5.3 QColor、QString和QRgb 互轉 385
11.6 畫筆類QPen 386
11.6.1 畫筆的屬性 387
11.6.2 構造一支畫筆 390
11.6.3 獲取或設定畫筆顏色 390
11.6.4 獲取或設定畫筆寬度 390
11.6.5 獲取或設定畫筆線型樣式 390
11.7 畫刷 391
11.8 畫圖類QPainter 393
11.8.1 畫直線 393
11.8.2 畫矩形 394
11.8.3 畫橢圓和圓 394
11.8.4 繪製文本 394
第12章 Qt多執行緒編程 398
12.1 使用多執行緒的好處 398
12.2 多執行緒編程的基本概念 399
12.2.1 作業系統和多執行緒 399
12.2.2 執行緒的基本概念 399
12.2.3 執行緒的狀態 400
12.2.4 執行緒函式 401
12.2.5 執行緒標識 401
12.2.6 Qt多執行緒編程的3種方式 401
12.3 在Qt中使用POSIX多執行緒庫 402
12.3.1 執行緒的創建 402
12.3.2 執行緒的屬性 408
12.3.3 執行緒的結束 420
12.3.4 執行緒退出時的清理機會 428
12.4 在Qt中使用C++ 11執行緒類 434
12.4.1 執行緒的創建 435
12.4.2 執行緒的標識符 443
12.4.3 當前執行緒this_thread 444
12.5 使用Qt自身的執行緒類 448
12.5.1 Qthread類的基本使用 448
12.5.2 執行緒間通信 452
第13章 Qt多媒體編程 459
13.1 概述 459
13.2 QMediaPlayer類 460
13.2.1 重要的成員函式 460
13.2.2 重要信號 461
13.2.3 播放音頻 461
13.2.4 播放視頻 462
第14章 Qt網路編程 468
14.1 TCP/IP協定 468
14.1.1 基本概念 468
14.1.2 TCP/IP協定的分層結構 468
14.2 獲取主機的網路信息 470
14.2.1 QHostInfo類 470
14.2.2 查詢本機的主機名 471
14.2.3 查詢本機的IP位址 472
14.3 TCP編程 475
第15章 Qt應用程式發布 482