Qt 5 編程入門, 2/e
內容描述
本書是基於Qt 5.12的QML和Qt Quick入門書籍,詳細介紹了QML語言的語法和編寫Qt Quick程序需要用到的基本知識點。本書內容主要包括Qt 5的介紹、QML語法、Qt Quick基礎知識以及在圖形動畫、數據處理、多媒體和移動開發方面的應用等。與第1版相比,本書使用Qt 5.12.0和Qt Creator 4.8.0進行了全書修訂,主要添加了圖表、3D可視化、移動開發等章節;對其他章節內容進行了大量更新,重寫了Qt Quick控件、設計器、與C++進行集成等章節,從而幫助初學者快速入門Qt Quick編程。
目錄大綱
第1章走進Qt Quick的世界1
1.1全新的QML和Qt Quick1
1.1.1歷史變遷1
1.1.2QML2
1.1.3Qt Quick2
1.1.4Qt QML和Qt Quick框架3
1.2Qt Quick項目4
1.2.1Qt 5的下載與安裝4
1.2.2創建Qt Quick應用6
1.2.3創建Qt Quick UI項目11
1.2.4運行示例程序13
1.2.5Qt Quick程序的發布14
1.3小結16
第2章QML語法17
2.1QML語法基礎17
2.2import導入語句20
2.2.1模塊(命名空間)導入語句20
2.2.2目錄導入語句21
2.2.3資源導入語句23
2.3QML類型系統24
2.3.1基本類型24
2.3.2類型26
2.3.3對像類型26
2.4對象特性26
2.4.1id特性27
2.4.2屬性特性28
2.4.3信號和信號處理器特性36
2.4.4方法特性40
2.4.5附加屬性和附加信號處理器41
2.4.6枚舉43
2.5集成43
2.5.1表達式43
2.5.2從動態創建QML對象49
2.5.3在QML中定義資源53
2.5.4在QML中導入資源56
2.5.5宿主環境58
2.6QML文檔59
2.6.1通過QML文檔定義對像類型60
2.6.2QML組件62
2.6.3作用域和命名解析64
2.6.4資源加載和網絡透明性70
2.6.5QML的國際化71
2.6.6QML的編碼約定75
2.7QML模塊78
2.7.1定義一個QML模塊78
2.7.2支持的QML模塊類型79
2.8小結79
第3章Qt Quick基礎80
3.1基礎可視項目81
3.1.1Item81
3.1.2Rectangle85
3.1.3Text85
3.1.4TextInput92
3.1.5TextEdit97
3.2佈局管理99
3.2.1定位器99
3.2.2基於錨的佈局103
3.2.3Layouts106
3.3事件處理110
3.3.1MouseArea110
3.3.2鼠標事件和滾輪事件112
3.3.3拖放事件114
3.3.4鍵盤事件和焦點作用域117
3.3.5定時器123
3.4使用Loader動態加載組件124
3.4.1Loader的大小與行為124
3.4.2從加載的項目中接收信號125
3.4.3焦點和鍵盤事件126
3.5小結127
第4章Qt Quick控件128
4.1Qt Quick控件基礎129
4.2按鈕類控件139
4.2.1AbstractButton139
4.2.2Button141
4.2.3CheckBox142
4.2.4RadioButton144
4.2.5ButtonGroup145
4.2.6RoundButton146
4.2.7Switch147
4.2.8DelayButton148
4.2.9Action和ActionGroup149
4.3指示類控件151
4.3.1Label151
4.3.2ProgressBar151
4.3.3BusyIndicator152
4.3.4PageIndicator153
4.4輸入類控件154
4.4.1TextField154
4.4.2TextArea155
4.4.3ComboBox156
4.4.4SpinBox159
4.4.5Dial162
4.4.6Slider163
4.4.7RangeSlider165
4.4.8Tumbler166
4.5菜單類控件167
4.5.1Menu167
4.5.2MenuBar171
4.6容器類控件173
4.6.1Pane173
4.6.2Frame174
4.6.3GroupBox174
4.6.4Page175
4.6.5ScrollView176
4.6.6ScrollBar和ScrollIndicator178
4.6.7StackView180
4.6.8TabBar185
4.6.9ToolBar187
4.6.10SwipeView188
4.7彈出類控件190
4.7.1Overlay190
4.7.2Popup191
4.7.3Dialog194
4.7.4ToolTip195
4.7.5Drawer196
4.8標準對話框197
4.8.1ColorDialog197
4.8.2FileDialog198
4.8.3FontDialog199
4.8.4MessageDialog200
4.9Qt Quick Controls 2配置文件202
4.10共享業務邏輯代碼202
4.10.1圖片查看器203
4.10.2文件選擇器207
4.10.3重構圖片選擇器207
4.11小結212
第5章圖形動畫基礎213
5.1顏色、漸變和調色板213
5.1.1顏色213
5.1.2漸變216
5.1.3系統調色板216
5.2圖片、邊界圖片和動態圖片217
5.2.1圖片217
5.2.2邊界圖片219
5.2.3動態圖片221
5.3縮放、旋轉和平移變換221
5.3.1使用屬性實現簡單變換221
5.3.2使用Transform實現高級變換223
5.4狀態224
5.4.1創建狀態225
5.4.2默認狀態和when屬性226
5.5動畫和過渡227
5.5.1使用屬性動畫227
5.5.2使用預定義的目標和屬性229
5.5.3在狀態改變時使用過渡230
5.5.4使用默認的行為動畫231
5.5.5使用並行或順序動畫組232
5.5.6使用動畫師動畫233
5.5.7控制動畫的執行234
5.5.8共享動畫實例235
5.6精靈動畫236
5.6.1精靈引擎介紹236
5.6.2AnimatedSprite240
5.7Flickable和Flipable241
5.7.1彈動效果241
5.7.2翻轉效果243
5.8小結244
第6章圖形效果245
6.1混合效果245
6.2顏色效果248
6.3漸變效果251
6.3.1錐形漸變251
6.3.2線性漸變252
6.3.3輻射漸變253
6.4變形效果254
6.5陰影效果255
6.5.1投影255
6.5.2內陰影256
6.6模糊效果257
6.6.1快速模糊257
6.6.2高斯模糊258
6.6.3遞歸模糊259
6.6.4遮罩模糊260
6.7動感模糊效果261
6.7.1方向模糊261
6.7.2徑向模糊262
6.7.3縮放模糊263
6.8發光效果263
6.8.1發光263
6.8.2矩形發光264
6.9遮罩效果266
6.9.1不透明遮罩266
6.9.2閾值遮罩267
6.10小結268
第7章粒子系統269
7.1ParticleSystem269
7.2發射器271
7.3渲染器272
7.4TrailEmitter275
7.5粒子組276
7.6參數278
7.7影響器279
7.7.1Age279
7.7.2Attractor280
7.7.3Friction281
7.7.4Gravity281
7.7.5Turbulence282
7.7.6Wander282
7.7.7GroupGoal282
7.7.8SpriteGoal283
7.8小結284
第8章Canvas 2D285
8.1Canvas的使用285
8.2繪製操作287
8.2.1繪製參數設置288
8.2.2繪製矩形290
8.2.3狀態的保存與恢復291
8.2.4繪製文本293
8.2.5繪製路徑294
8.3漸變填充299
8.3.1線性漸變299
8.3.2輻射漸變300
8.3.3錐型漸變301
8.4陰影301
8.5使用圖像302
8.6坐標變換304
8.6.1平移305
8.6.2縮放305
8.6.3旋轉306
8.6.4斜切307
8.6.5transform函數總結308
8.7小結309
第9章模型和視圖310
9.1模型/視圖架構簡介310
9.2數據模型312
9.2.1整數作為模型312
9.2.2ListModel313
9.2.3WorkerScript315
9.2.4ObjectModel316
9.2.5DelegateModel317
9.2.6Package319
9.2.7XmlListModel320
9.2.8LocalStorage322
9.2.9使用C++擴展QML模型326
9.3視圖類型330
9.3.1ListView330
9.3.2GridView336
9.3.3視圖過渡338
9.3.4PathView341
9.4調整性能344
9.5小結345
第10章Qt圖表346
10.1創建一個圖表項目347
10.2坐標軸Axes348
10.2.1數值坐標軸和對數數值坐標軸349
10.2.2分類坐標軸350
10.2.3柱形圖分類坐標軸351
10.2.4日期時間坐標軸352
10.2.5坐標軸的共有屬性354
10.3圖例Legend354
10.4ChartView356
10.4.1設置主題357
10.4.2啟用動畫358
10.5使用外部數據動態創建圖表359
10.6常用圖表類型362
10.6.1折線圖、曲線圖和散點圖362
10.6.2面積圖364
10.6.3柱形圖、堆積柱形圖、百分比堆積柱形圖365
10.6.4餅狀圖366
10.6.5盒須圖(箱形圖)367
10.6.6蠟燭圖(K線圖)368
10.6.7極坐標圖369
10.7小結371
第11章Qt Data Visualization數據可視化372
11.13D柱形圖372
11.1.13D坐標軸375
11.1.2數據代理377
11.1.33D系列380
11.2自定義3D場景381
11.3設置主題382
11.4選擇模式和切片視圖385
11.53D散點圖387
11.63D曲面圖389
11.7小結391
第12章多媒體應用392
12.1多媒體模塊介紹392
12.2播放音頻393
12.2.1播放壓縮音頻393
12.2.2播放未壓縮音頻395
12.3播放視頻396
12.3.1使用Video播放視頻文件396
12.3.2對視頻使用圖形效果397
12.4媒體播放器399
12.4.1播放音視頻399
12.4.2使用Windows平台附加功能400
12.5小結406
第13章QML與C++的集成407
13.1快速選擇正確的集成方式408
13.2QML運行時的C++類411
13.2.1mlEngine411
13.2.2mlContext412
13.2.3mlComponent414
13.2.4mlExpression415
13.3在QML中使用C++特性416
13.3.1數據類型處理和擁有權416
13.3.2數據類型的轉換416
13.3.3使用C++屬性419
13.3.4使用函數和槽423
13.3.5使用信號425
13.4註冊QML類型426
13.4.1註冊可實例化對像類型426
13.4.2註冊不可實例化對像類型427
13.4.3註冊單例類型427
13.4.4類型的修訂和版本428
13.5定義QML特定類型和屬性429
13.5.1提供附加對象註解數據429
13.5.2屬性修飾符類型432
13.5.3指定QML對像類型的默認屬性434
13.5.4接收對像初始化通知435
13.6在C++中使用QML對象436
13.6.1使用C++加載QML對象436
13.6.2使用對象名字訪問加載的QML對象438
13.6.3使用C++訪問QML對象成員439
13.7小結442
第14章使用Qt Quick設計器443
14.1Qt Quick UI表單文件444
14.2常用操作448
14.2.1管理項目層次448
14.2.2QML類型庫449
14.2.3指定項目屬性449
14.2.4添加狀態452
14.2.5在畫布上操作QML類型452
14.3使用設計器編輯QML文檔457
14.3.1創建項目457
14.3.2創建主視圖458
14.3.3添加視圖461
14.3.4為視圖添加動畫462
14.4小結464
第15章Qt移動開發入門465
15.1Qt Android開發配置465
15.1.1工具軟件的下載465
15.1.2工具軟件的安裝466
15.1.3使用虛擬機運行Qt Android程序468
15.1.4使用手機運行Qt Android程序471
15.1.5發布項目472
15.2Qt iOS開發配置476
15.2.1使用模擬器運行Qt iOS程序477
15.2.2使用手機運行Qt iOS程序478
15.3創建演示程序481
15.3.1創建應用主窗口481
15.3.2拍照功能486
15.3.3多點觸控488
15.3.4傳感器489
15.3.5地圖491
15.3.6藍牙493
15.4小結496
參考文獻497