第1章 走進(jìn)Qt Quick的世界 1
1.1 QML和Qt Quick簡(jiǎn)介 1
1.1.1 QML 1
1.1.2 Qt Quick 2
1.1.3 Qt Quick和Qt Widgets用戶(hù)界面對(duì)比 3
1.2 Qt 6的下載安裝和Qt Creator開(kāi)發(fā)環(huán)境簡(jiǎn)介 4
1.2.1 Qt 6的下載與安裝 4
1.2.2 Qt Creator開(kāi)發(fā)環(huán)境 5
1.3 運(yùn)行示例程序 7
1.4 Qt Quick應(yīng)用 8
1.4.1 創(chuàng)建Qt Quick應(yīng)用 9
1.4.2 使用Qt資源文件 12
1.4.3 設(shè)置應(yīng)用程序圖標(biāo) 15
1.4.4 Qt Quick程序的發(fā)布 15
1.5 創(chuàng)建Qt Quick UI項(xiàng)目 17
1.6 Qt幫助和本書(shū)源碼的使用 18
1.6.1 Qt幫助的使用 18
1.6.2 本書(shū)源碼的使用 20
1.7 小 結(jié) 20
第2章 QML語(yǔ)法 21
2.1 QML語(yǔ)法基礎(chǔ) 21
2.2 import導(dǎo)入語(yǔ)句 24
2.2.1 模塊(命名空間)導(dǎo)入語(yǔ)句 24
2.2.2 目錄導(dǎo)入語(yǔ)句 25
2.2.3 JavaScript資源導(dǎo)入語(yǔ)句 27
2.3 QML類(lèi)型系統(tǒng) 28
2.3.1 基本類(lèi)型 28
2.3.2 JavaScript類(lèi)型 30
2.3.3 對(duì)象類(lèi)型 30
2.4 對(duì)象特性(Attributes) 30
??
2.4.1 id特性 31
2.4.2 屬性特性 31
2.4.3 信號(hào)和信號(hào)處理器特性 40
2.4.4 方法特性 44
2.4.5 附加屬性和附加信號(hào)處理器 46
2.4.6 枚舉特性 47
2.5 集成JavaScript 48
2.5.1 JavaScript表達(dá)式和屬性綁定 48
2.5.2 從JavaScript動(dòng)態(tài)創(chuàng)建 QML對(duì)象 53
2.5.3 在QML中定義JavaScript資源 57
2.5.4 在QML中導(dǎo)入JavaScript資源 59
2.5.5 JavaScript宿主環(huán)境 62
2.6 QML文檔 64
2.6.1 通過(guò)QML文檔定義對(duì)象類(lèi)型 64
2.6.2 QML組件 67
2.6.3 作用域和命名解析 69
2.6.4 資源加載和網(wǎng)絡(luò)透明性 75
2.6.5 QML的國(guó)際化 76
2.6.6 QML的編碼約定 79
2.7 QML模塊 82
2.8 小 結(jié) 83
第3章 Qt Quick基礎(chǔ) 84
3.1 基礎(chǔ)可視項(xiàng)目 85
3.1.1 Item 85
3.1.2 Rectangle 89
3.1.3 Text 89
3.1.4 TextInput 96
3.1.5 TextEdit 101
3.2 布局管理 102
3.2.1 定位器(Positioners) 102
3.2.2 基于錨(anchors)的布局 107
3.2.3 布局管理器(Layouts) 109
3.2.4 布局鏡像(LayoutMirroring) 112
3.3 事件處理 113
3.3.1 MouseArea 114
3.3.2 鼠標(biāo)事件(MouseEvent)和滾輪事件(WheelEvent) 115
3.3.3 拖放事件(DragEvent) 117
3.3.4 鍵盤(pán)事件(KeyEvent)和焦點(diǎn)作用域(FocusScope) 120
3.3.5 定時(shí)器(Timer) 126
3.4 使用Loader動(dòng)態(tài)加載組件 126
3.4.1 Loader的大小與行為 127
3.4.2 從加載的項(xiàng)目中接收信號(hào) 127
3.4.3 焦點(diǎn)和鍵盤(pán)事件 128
3.5 小 結(jié) 129
第4章 Qt Quick控件和Qt Quick對(duì)話框 130
4.1 Qt Quick控件項(xiàng)目 131
4.1.1 窗口 Window 131
4.1.2 應(yīng)用程序主窗口ApplicationWindow 133
4.1.3 控件基類(lèi)型Control 138
4.2 按鈕類(lèi)控件 139
4.2.1 AbstractButton、Button和RoundButton 139
4.2.2 CheckBox、RadioButton和ButtonGroup 141
4.2.3 DelayButton和Switch 143
4.3 容器類(lèi)控件 143
4.3.1 Pane、Frame和GroupBox 144
4.3.2 Page 145
4.3.3 ScrollView 147
4.3.4 Container、SwipeView和TabBar 147
4.3.5 SplitView 150
4.3.6 StackView 151
4.4 委托類(lèi)控件 153
4.4.1 ItemDelegate、CheckDelegate、RadioDelegate和
SwitchDelegate 153
4.4.2 SwipeDelegate 154
4.5 指示器類(lèi)控件 157
4.5.1 BusyIndicator 157
4.5.2 ProgressBar 158
4.6 輸入類(lèi)控件 158
4.6.1 ComboBox 158
4.6.2 Dial 159
4.6.3 RangeSlider和Slider 159
4.6.4 TextArea和TextField 160
4.6.5 Tumbler和SpinBox 160
4.7 菜單類(lèi)控件 163
4.8 導(dǎo)航類(lèi)控件 164
4.9 彈出類(lèi)控件 165
4.10 分隔類(lèi)控件 167
4.11 日期類(lèi)控件 168
4.12 設(shè)置控件樣式 170
4.12.1 使用控件樣式 170
4.12.2 自定義控件 172
4.13 Qt Quick Dialogs模塊 173
4.13.1 顏色對(duì)話框ColorDialog 173
4.13.2 文件對(duì)話框FileDialog 174
4.13.3 目錄對(duì)話框FolderDialog 176
4.13.4 字體對(duì)話框FontDialog 176
4.13.5 消息對(duì)話框 MessageDialog 177
4.14 小 結(jié) 177
第5章 圖形動(dòng)畫(huà)基礎(chǔ) 178
5.1 顏色、漸變和調(diào)色板 179
5.1.1 顏色color 179
5.1.2 漸變Gradient 181
5.1.3 系統(tǒng)調(diào)色板SystemPalette 181
5.2 圖片、邊界圖片和動(dòng)態(tài)圖片 182
5.2.1 圖片Image 182
5.2.2 邊界圖片BorderImage 184
5.2.3 動(dòng)態(tài)圖片 AnimatedImage 185
5.3 縮放、旋轉(zhuǎn)和平移變換 186
5.3.1 使用屬性實(shí)現(xiàn)簡(jiǎn)單變換 186
5.3.2 使用Transform實(shí)現(xiàn)高級(jí)變換 187
5.4 狀態(tài)State 189
5.4.1 創(chuàng)建狀態(tài) 189
5.4.2 默認(rèn)狀態(tài)和when屬性 191
5.5 動(dòng)畫(huà)和過(guò)渡 192
5.5.1 使用屬性動(dòng)畫(huà) 192
5.5.2 使用預(yù)定義的目標(biāo)和屬性 193
5.5.3 在狀態(tài)改變時(shí)使用過(guò)渡 194
5.5.4 使用默認(rèn)的行為動(dòng)畫(huà) 195
5.5.5 使用并行或順序動(dòng)畫(huà)組 196
5.5.6 使用動(dòng)畫(huà)師動(dòng)畫(huà) 197
5.5.7 控制動(dòng)畫(huà)的執(zhí)行 198
5.5.8 共享動(dòng)畫(huà)實(shí)例 199
5.6 精靈動(dòng)畫(huà)Sprite Animations 200
5.6.1 精靈引擎介紹 200
5.6.2 AnimatedSprite 203
5.7 Flickable和Flipable 204
5.7.1 彈動(dòng)效果Flickable 204
5.7.2 翻轉(zhuǎn)效果Flipable 207
5.8 小 結(jié) 208
第6章 粒子系統(tǒng)和圖形效果 209
6.1 粒子系統(tǒng) 209
6.1.1 ParticleSystem 209
6.1.2 發(fā)射器Emitter 211
6.1.3 渲染器ParticlePainters 212
6.1.4 TrailEmitter 214
6.1.5 粒子組 216
6.1.6 隨機(jī)參數(shù) 217
6.1.7 影響器Affector 218
6.2 圖形效果 223
6.2.1 混合效果 223
6.2.2 顏色效果 226
6.2.3 漸變效果 229
6.2.4 變形效果 231
6.2.5 陰影效果 231
6.2.6 模糊效果 233
6.2.7 動(dòng)感模糊效果 236
6.2.8 發(fā)光效果 237
6.2.9 遮罩效果 239
6.3 小 結(jié) 240
第7章 Qt Quick 3D 241
7.1 創(chuàng)建一個(gè)Qt Quick 3D項(xiàng)目 242
7.2 場(chǎng) 景 244
7.2.1 場(chǎng)景坐標(biāo) 244
7.2.2 場(chǎng)景環(huán)境 246
7.2.3 基于圖像的照明和天空盒 248
7.2.4 Qt Quick 3D場(chǎng)景效果 250
7.3 相 機(jī) 250
7.3.1 透視相機(jī) 251
7.3.2 正交相機(jī) 253
7.4 光源和陰影 253
7.4.1 平行光源 254
7.4.2 點(diǎn)光源 254
7.4.3 聚光燈光源 255
7.5 網(wǎng) 格 256
7.5.1 內(nèi)置網(wǎng)格 256
7.5.2 使用Balsam工具轉(zhuǎn)換網(wǎng)格文件 257
7.6 材質(zhì)和紋理 259
7.6.1 DefaultMaterial 259
7.6.2 PrincipledMaterial 260
7.6.3 SpecularGlossyMaterial 261
7.6.4 紋理貼圖 261
7.7 在3D場(chǎng)景中添加2D內(nèi)容 263
7.8 實(shí)例化渲染 265
7.9 3D粒子系統(tǒng) 268
7.10 Qt Quick 3D物理模擬 269
7.11 小 結(jié) 274
第8章 模型和視圖 275
8.1 模型/視圖架構(gòu)簡(jiǎn)介 275
8.2 數(shù)據(jù)模型 277
8.2.1 整數(shù)作為模型 277
8.2.2 ListModel 278
8.2.3 XmlListModel 280
8.2.4 ObjectModel 282
8.2.5 DelegateModel 283
8.2.6 Package 285
8.2.7 TableModel 286
8.2.8 在委托中使用必需屬性來(lái)匹配模型角色 288
8.2.9 使用C++擴(kuò)展 QML模型 289
8.2.10 LocalStorage 293
8.2.11 WorkerScript 297
8.3 視圖類(lèi)型 298
8.3.1 ListView 298
8.3.2 GridView 304
8.3.3 視圖過(guò)渡 305
8.3.4 TableView和TreeView 308
8.3.5 PathView 312
8.4 委托選擇器DelegateChooser 315
8.5 小 結(jié) 317
第9章 Qt圖表 318
9.1 創(chuàng)建一個(gè)圖表項(xiàng)目 319
9.2 坐標(biāo)軸Axes 320
9.2.1 數(shù)值坐標(biāo)軸和對(duì)數(shù)數(shù)值坐標(biāo)軸 321
9.2.2 分類(lèi)坐標(biāo)軸 322
9.2.3 柱形圖分類(lèi)坐標(biāo)軸 322
9.2.4 日期時(shí)間坐標(biāo)軸 323
9.2.5 坐標(biāo)軸的共有屬性 324
9.3 圖例Legend 325
9.4 ChartView 326
9.4.1 設(shè)置主題 327
9.4.2 啟用動(dòng)畫(huà) 328
9.5 使用數(shù)據(jù)動(dòng)態(tài)創(chuàng)建圖表 328
9.6 常用圖表類(lèi)型 331
9.6.1 折線圖、曲線圖和散點(diǎn)圖 331
9.6.2 面積圖 332
9.6.3 柱形圖、堆積柱形圖、百分比堆積柱形圖 333
9.6.4 餅狀圖 334
9.6.5 盒須圖(箱形圖) 335
9.6.6 蠟燭圖(K線圖) 336
9.6.7 極坐標(biāo)圖 337
9.7 小 結(jié) 338
第10章 Qt Data Visualization數(shù)據(jù)可視化 339
10.1 3D柱形圖 'A1?339
10.1.1 3D坐標(biāo)軸 341
10.1.2 數(shù)據(jù)代理 343
10.1.3 3D系列 345
10.2 自定義3D場(chǎng)景 346
10.3 設(shè)置主題 346
10.4 選擇模式和切片視圖 349
10.5 3D散點(diǎn)圖 350
10.6 3D曲面圖 352
10.7 小 結(jié) 355
第11章 多媒體應(yīng)用 356
11.1 播放音頻 357
11.1.1 播放壓縮音頻 357
11.1.2 播放未壓縮音頻 359
11.2 播放視頻 360
11.2.1 使用 MediaPlayer播放視頻文件 360
11.2.2 對(duì)視頻使用圖形效果 361
11.3 媒體捕獲 363
11.3.1 CaptureSession和 MediaDevices 363
11.3.2 相機(jī)Camera 363
11.3.3 使用ImageCapture進(jìn)行拍照 364
11.3.4 使用 MediaRecorder進(jìn)行音視頻錄制 365
11.4 小 結(jié) 367
第12章 QML與C++的集成 368
12.1 QML運(yùn)行時(shí)的C++類(lèi) 369
12.1.1 QQmlEngine、QQmlApplicationEngine和QQuickView 369
12.1.2 QQmlContext 370
12.1.3 QQmlComponent 372
12.1.4 QQmlExpression 373
12.2 在 QML類(lèi)型系統(tǒng)中注冊(cè)C++類(lèi)型 374
12.2.1 不再推薦使用的qmlRegisterType()相關(guān)函數(shù) 374
12.2.2 基于宏的注冊(cè)方式 375
12.2.3 注冊(cè)值類(lèi)型 378
12.2.4 注冊(cè)不可實(shí)例化的對(duì)象類(lèi)型 379
12.2.5 注冊(cè)單例類(lèi)型 379
12.2.6 類(lèi)型的修訂和版本 380
12.3 定義QML特定類(lèi)型和屬性 381
12.3.1 提供附加屬性 381
12.3.2 屬性修飾符類(lèi)型 383
12.3.3 指定QML對(duì)象類(lèi)型的默認(rèn)屬性和父級(jí)屬性 386
12.3.4 接收對(duì)象初始化通知 387
12.3.5 使用Qt Quick 模塊定義可視化項(xiàng)目 388
12.4 在 QML中使用C++特性 388
12.4.1 數(shù)據(jù)類(lèi)型處理和擁有權(quán) 388
12.4.2 數(shù)據(jù)類(lèi)型的轉(zhuǎn)換 388
12.4.3 使用C++屬性 393
12.4.4 使用函數(shù)和槽 397
12.4.5 使用信號(hào) 398
12.5 在C++中使用QML對(duì)象 399
12.5.1 使用C++加載 QML對(duì)象 399
12.5.2 使用對(duì)象名字訪問(wèn)加載的QML對(duì)象 401
12.5.3 使用C++訪問(wèn) QML對(duì)象成員 401
12.6 小 結(jié) 405
第13章 Qt移動(dòng)開(kāi)發(fā)入門(mén) 406
13.1 Qt Android開(kāi)發(fā)配置 406
13.1.1 工具軟件的下載和安裝 406
13.1.2 使用手機(jī)運(yùn)行Qt Android程序 408
13.2 創(chuàng)建演示程序 411
13.2.1 創(chuàng)建應(yīng)用主窗口 411
13.2.2 拍照功能 416
13.2.3 多點(diǎn)觸控 8230 _3418
13.2.4 傳感器 419
13.3 發(fā)布項(xiàng)目 421
13.4 小 結(jié) 423
參考文獻(xiàn) 424__