零基礎學Qt 6編程

霍亞飛

  • 出版商: 人民郵電
  • 出版日期: 2024-08-01
  • 定價: $599
  • 售價: 8.5$509
  • 語言: 簡體中文
  • 頁數: 326
  • 裝訂: 平裝
  • ISBN: 7115637709
  • ISBN-13: 9787115637703
  • 相關分類: Qt
  • 下單後立即進貨 (約4週~6週)

  • 零基礎學Qt 6編程-preview-1
  • 零基礎學Qt 6編程-preview-2
零基礎學Qt 6編程-preview-1

商品描述

這是一本Qt 6編程入門書,同步講解了Qt Widgets和Qt Quick編程內容。全書共14章,前8章是基礎內容,包括Qt概述、Qt Widgets窗口部件和Qt Quick控件、佈局管理、事件系統、界面外觀等內容,其中穿插介紹了Qt Creator開發環境、Qt信號和槽機制、Qt程序編譯過程、QML語法基礎等知識;第9章介紹圖形動畫基礎;第10~12章介紹數據存儲和顯示的相關內容,本書從Qt涉及的眾多應用領域中選取了常用的數據處理來重點講解;第13章介紹多媒體應用;第14章介紹QML和C++的集成開發。本書註重知識點和實踐的結合,提供的實例兼具示範性和實用性,並就知識點提供了Qt文檔關鍵字提示,讓讀者在學習的過程中掌握自主學習的方法並逐步養成良好的編程習慣。

本書提供了課件PPT、實驗講義和程序源碼,可作為高等院校相關課程的教材,也可作為各類軟件開發人員的參考書。

作者簡介

霍亚飞(网名:yafeilinux),从事嵌入式软件开发工作十余年,于 2012 年创办 Qt 开源社区,长期致力于 Qt 及开源项目的推广和普及。著有《Qt Creator 快速入门》《Qt 5 编程入门》《Qt 及Qt Quick 开发实战精解》《QML 和 Qt Quick 快速入门》等多部图书。

目錄大綱

第 1章 開始Qt 6編程 1

1.1 Qt概述 1

1.1.1 Qt的歷史 1

1.1.2 Qt的特色 2

1.1.3 Qt軟件開發框架介紹 3

1.1.4 Qt的授權 4

1.1.5 Qt Quick和QML介紹 4

1.2 如何選擇Qt Widgets和Qt Quick 6

1.2.1 兩者的區別 6

1.2.2 如何選擇兩種技術 6

1.3 Qt 6的下載和安裝 7

1.4 Qt Creator開發環境簡介 8

1.4.1 Qt Creator的特色 8

1.4.2 Qt Creator界面介紹 8

1.5 運行一個示例程序 10

1.5.1 運行Qt Widgets示例程序 11

1.5.2 運行Qt Quick示例程序 12

1.6 幫助模式 12

1.7 Qt工具簡介 13

1.7.1 Qt Assistant 13

1.7.2 Qt Designer 14

1.7.3 Qt Linguist 14

1.7.4 Qt Design Studio 14

1.8 關於本書源碼的使用 15

1.9 小結 15

1.10 練習 15

第 2章 第 一個Qt應用 16

2.1 第 一個Qt Widgets應用 16

2.1.1 創建Qt Widgets應用 16

2.1.2 編輯模式和設計模式 17

2.1.3 項目模式和項目文件 20

2.1.4 程序的運行 21

2.1.5 程序的發布 22

2.1.6 程序源碼與編譯過程詳解 24

2.2 第 一個Qt Quick應用 33

2.2.1 創建Qt Quick應用 33

2.2.2 使用Qt資源文件 35

2.2.3 程序的發布 37

2.2.4 創建Qt Quick UI項目 37

2.2.5 使用Qt Quick設計器 38

2.2.6 QML語法基礎 39

2.3 設置應用程序圖標 41

2.4 小結 41

2.5 練習 41

第3章 Qt Widgets窗口部件和Qt Quick控件 42

3.1 Qt Widgets窗口部件 42

3.1.1 基礎窗口部件QWidget 42

3.1.2 窗口幾何佈局 44

3.1.3 QFrame類族 45

3.1.4 按鈕部件 46

3.1.5 QLineEdit 47

3.1.6 QAbstractSpinBox 49

3.1.7 QAbstractSlider 50

3.2 對話框QDialog 51

3.2.1 模態和非模態對話框 51

3.2.2 標準對話框 52

3.3 Qt Quick基礎可視項目 53

3.3.1 Item 54

3.3.2 Rectangle 56

3.3.3 Text 56

3.3.4 TextInput 57

3.3.5 TextEdit 59

3.4 Qt Quick控件 59

3.4.1 控件基類型Control 60

3.4.2 按鈕類控件 61

3.4.3 指示器類控件 63

3.4.4 輸入類控件 64

3.4.5 日期類控件 68

3.5 Qt Quick系統對話框 68

3.5.1 顏色對話框ColorDialog 69

3.5.2 文件對話框FileDialog 69

3.5.3 消息對話框MessageDialog 70

3.6 程序調試 70

3.6.1 調試模式 71

3.6.2 單步調試 72

3.6.3 在Qt Widgets程序中使用qDebug()函數 72

3.6.4 在Qt Quick程序中使用console.log()函數 73

3.7 小結 74

3.8 練習 74

第4章 佈局管理 75

4.1 Qt Widgets佈局管理系統 75

4.1.1 佈局管理器簡介 75

4.1.2 基本佈局管理器 76

4.1.3 柵格佈局管理器 76

4.1.4 窗體佈局管理器 77

4.1.5 綜合使用佈局管理器 77

4.1.6 設置部件大小 78

4.1.7 可擴展窗口 78

4.2 Qt Quick佈局管理 79

4.2.1 定位器 79

4.2.2 基於錨(anchors)的佈局 82

4.2.3 佈局管理器 83

4.3 小結 86

4.4 練習 86

第5章 信號和槽 87

5.1 初識Qt Widgets中的信號和槽 87

5.1.1 認識信號和槽 87

5.1.2 自定義對話框 88

5.1.3 在主界面中使用自定義的對話框 89

5.2 信號和槽詳解 90

5.2.1 信號和槽典型應用示例 91

5.2.2 信號和槽的關聯 92

5.2.3 信號和槽的自動關聯 94

5.2.4 信號和槽斷開關聯 95

5.2.5 信號和槽的高級應用 96

5.3 Qt Quick中的信號和信號處理器 96

5.3.1 概述 96

5.3.2 聲明信號 96

5.3.3 信號處理器 97

5.3.4 使用Connections類型和connect()函數 98

5.4 Qt核心機制簡介 99

5.4.1 對象模型 99

5.4.2 元對象系統 100

5.4.3 屬性系統 101

5.4.4 對象樹與擁有權 102

5.5 小結 102

5.6 練習 102

第6章 應用程序主窗口 103

6.1 Qt Widgets應用程序主窗口 103

6.1.1 菜單欄和工具欄 103

6.1.2 中心部件 106

6.1.3 Dock部件 106

6.1.4 狀態欄 107

6.1.5 自定義菜單 107

6.2 Qt Quick應用程序主窗口 109

6.2.1 窗口Window 110

6.2.2 應用程序主窗口ApplicationWindow 111

6.2.3 菜單類控件 115

6.2.4 容器類控件 115

6.2.5 彈出類控件 119

6.3 小結 121

6.4 練習 122

第7章 事件系統 123

7.1 Qt Widgets中的事件 123

7.1.1 事件的處理 123

7.1.2 事件的傳遞 124

7.1.3 鼠標事件和滾輪事件 127

7.1.4 鍵盤事件 128

7.1.5 定時器事件與隨機數 129

7.1.6 拖放操作 131

7.2 Qt Quick事件處理 135

7.2.1 MouseArea 135

7.2.2 鼠標事件MouseEvent和滾輪事件WheelEvent 137

7.2.3 拖放事件DragEvent 138

7.2.4 鍵盤事件KeyEvent 140

7.2.5 定時器Timer和隨機數 142

7.3 小結 143

7.4 練習 143

第8章 界面外觀和國際化 144

8.1 Qt Widgets外觀樣式 144

8.2 Qt樣式表 145

8.2.1 使用代碼設置樣式表 145

8.2.2 在設計模式中設置樣式表 145

8.2.3 Qt樣式表語法 146

8.2.4 自定義部件外觀 148

8.3 Qt Quick控件樣式 150

8.3.1 使用控件樣式 151

8.3.2 自定義控件 152

8.4 國際化 153

8.4.1 使用Qt Linguist翻譯應用程序過程詳解 154

8.4.2 使用Qt Creator自動生成翻譯文件 157

8.4.3 程序翻譯中的相關問題 158

8.5 Qt Quick的國際化 160

8.5.1 簡單示例 160

8.5.2 需要註意的問題 161

8.6 小結 163

8.7 練習 164

第9章 圖形動畫基礎 165

9.1 Qt Widgets中的圖形動畫基礎 165

9.1.1 2D繪圖 165

9.1.2 重繪事件 166

9.1.3 顏色和畫刷 167

9.1.4 漸變填充 168

9.1.5 坐標系統和抗鋸齒渲染 169

9.1.6 坐標變換 169

9.1.7 繪制圖像 171

9.1.8 動態圖片 172

9.2 Qt Widgets中的圖形動畫框架 173

9.2.1 圖形視圖框架的結構 173

9.2.2 圖形視圖框架的坐標系統 177

9.2.3 動畫、碰撞檢測和圖形部件 179

9.2.4 動畫框架 181

9.2.5 狀態機框架 185

9.3 Qt Quick中的圖形動畫基礎 187

9.3.1 顏色、漸變 187

9.3.2 圖片、邊界圖片和動態圖片 188

9.3.3 縮放、旋轉和平移變換 190

9.3.4 狀態State 191

9.4 Qt Quick中的動畫和過渡 193

9.4.1 使用屬性動畫 194

9.4.2 使用預定義的目標和屬性 194

9.4.3 在狀態改變時使用過渡 195

9.4.4 使用默認的行為動畫 196

9.4.5 使用並行或順序動畫組 197

9.4.6 使用動畫師動畫 197

9.4.7 控制動畫的執行 198

9.5 小結 199

9.6 練習 199

第 10章 數據存儲和顯示 200

10.1 Qt Widgets中的模型/視圖架構 200

10.1.1 模型類 200

10.1.2 視圖類 203

10.1.3 委托類 205

10.1.4 項目視圖的便捷類 208

10.2 Qt Widgets中的數據庫應用 209

10.2.1 數據庫簡介 209

10.2.2 SQL數據庫驅動 209

10.2.3 創建數據庫連接 210

10.2.4 執行SQL語句 212

10.2.5 SQL查詢模型 214

10.2.6 SQL表格模型 215

10.2.7 SQL關系表格模型 218

10.3 Qt Widgets中的XML應用 218

10.3.1 QXmlStreamReader 219

10.3.2 QXmlStreamWriter 221

10.4 Qt Quick中的模型/視圖架構簡介 221

10.5 Qt Quick中的數據模型 222

10.5.1 整數作為模型 223

10.5.2 ListModel 223

10.5.3 XmlListModel 225

10.5.4 TableModel 227

10.5.5 其他模型類型 228

10.5.6 在委托中使用必需屬性來匹配模型角色 229

10.5.7 LocalStorage 230

10.6 視圖類型 231

10.6.1 ListView 231

10.6.2 GridView 234

10.6.3 視圖過渡 235

10.7 小結 236

10.8 練習 236

第 11章 Qt圖表 237

11.1 在Qt Widgets中使用Qt圖表 237

11.1.1 簡單示例 237

11.1.2 坐標軸 240

11.1.3 使用外部數據動態創建圖表 243

11.2 在Qt Quick中使用Qt圖表 246

11.2.1 創建一個圖表項目 246

11.2.2 坐標軸 247

11.2.3 圖例Legend 250

11.2.4 ChartView 251

11.2.5 使用數據動態創建圖表 252

11.2.6 常用圖表類型介紹 254

11.3 小結 255

11.4 練習 255

第 12章 Qt數據可視化 256

12.1 在Qt Widgets中使用數據可視化 256

12.1.1 3D柱形圖 256

12.1.2 自定義3D場景 257

12.1.3 設置軸標簽、柱形標簽和軸標題 258

12.1.4 設置3D項的形狀 259

12.1.5 設置主題 259

12.1.6 選擇模式和切片視圖 260

12.1.7 項目模型和數據映射 261

12.1.8 3D散點圖和3D曲面圖 262

12.2 在Qt Quick中使用數據可視化 263

12.2.1 3D柱形圖 263

12.2.2 3D坐標軸 264

12.2.3 數據代理 266

12.2.4 3D系列 267

12.2.5 自定義3D場景 267

12.2.6 設置主題 268

12.2.7 選擇模式和切片視圖 270

12.2.8 3D散點圖 270

12.2.9 3D曲面圖 271

12.3 小結 273

12.4 練習 273

第 13章 多媒體應用 274

13.1 Qt Widgets中的多媒體應用 274

13.1.1 播放音頻 275

13.1.2 播放視頻 276

13.1.3 QMediaPlayer 277

13.1.4 使用相機 282

13.1.5 錄制音頻 285

13.2 Qt Quick中的多媒體應用 287

13.2.1 播放壓縮音頻 288

13.2.2 播放未壓縮音頻 289

13.2.3 播放視頻 290

13.2.4 媒體捕獲相關類型 291

13.2.5 使用ImageCapture進行拍照 291

13.2.6 使用MediaRecorder進行音視頻錄制 292

13.3 小結 294

13.4 練習 294

第 14章 QML與C++混合開發 295

14.1 概述 295

14.2 在QML類型系統中註冊C++類型 295

14.2.1 基於宏的註冊方式 296

14.2.2 註冊值類型 299

14.2.3 註冊不可實例化的對象類型 299

14.2.4 註冊單例類型 300

14.2.5 類型的修訂和版本 300

14.3 Qt QML模塊提供的C++類 301

14.3.1 QQmlEngine、QQmlApplicationEngine和QQuickView 301

14.3.2 QQmlContext 302

14.3.3 QQmlComponent 303

14.3.4 QQmlExpression 304

14.4 小結 304

14.5 練習 305

附錄A QML語法速查 306

A.1 import導入語句 306

A.1.1 模塊(命名空間)導入語句 306

A.1.2 目錄導入語句 307

A.1.3 JavaScript資源導入語句 308

A.2 QML類型系統 308

A.2.1 基本類型 308

A.2.2 JavaScript類型 309

A.2.3 對象類型 310

A.3 對象特性(Attributes) 310

A.3.1 id特性 310

A.3.2 屬性特性 310

A.3.3 信號和信號處理器特性 315

A.3.4 方法特性 315

A.3.5 附加屬性和附加信號處理器特性 316

A.3.6 枚舉特性 317

A.4 屬性綁定 317

A.4.1 一般綁定 318

A.4.2 使用binding() 319

A.5 QML文檔 319

A.5.1 通過QML文檔定義對象類型 319

A.5.2 QML組件 320

A.6 QML模塊 322

A.6.1 定義一個QML模塊 322

A.6.2 通過C++插件提供類型和功能 322

附錄B CMake簡介 323

B.1 構建控制台應用 323

B.2 構建Qt Widgets應用 324

B.3 構建Qt Quick應用 325

B.4 小結 326