Qt 6.x 從入門到精通

朱文偉

  • 出版商: 清華大學
  • 出版日期: 2022-09-01
  • 定價: $714
  • 售價: 8.5$607
  • 語言: 簡體中文
  • ISBN: 7302614482
  • ISBN-13: 9787302614487
  • 相關分類: Qt
  • 立即出貨 (庫存 < 4)

  • Qt 6.x 從入門到精通-preview-1
  • Qt 6.x 從入門到精通-preview-2
  • Qt 6.x 從入門到精通-preview-3
Qt 6.x 從入門到精通-preview-1

買這商品的人也買了...

商品描述

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