出版信息
PySide6基礎教程
作者:周家安
定價:100元
印次:1-1
ISBN:9787302683049
出版日期:2025.04.01
印刷日期:2025.03.25
內容簡介
本書作為PySide6的基礎教程,兼顧入門與實踐。本書適合有Python編程基礎的讀者閱讀使用;亦可作為有Qt6 C++ 編程基礎的讀者的參考叢書。 本書內容包括:PySide6開發環境搭建、Qt6基礎類庫、Qt6應用程式的基本結構、Qobject類的繼承、信號與槽、GUI核心、Widget體系、各種Widget元素的使用、選單與Action、對話框、布局系統的運用、Qt樣式表(QSS)、繪圖技術、檔案管理、多媒體套用、網路技術、資料庫訪問等。
作者簡介
周家安,微軟MVP,熱心技術博主。常通過撰寫博者的方式分享編程經驗與技巧。著有《C#學習筆記》《Go語言入門經典》《Python實戰指南》等原創圖書。
圖書目錄
目錄
第 1章搭建 PySide開發環境 ···· 1
1.1配置 Python ·· 1
1.2配置 Visual Studio Code · 2
1.2.1 Windows · 2
1.2.2 Linux· 2
1.2.3 macOS····· 2
1.2.4 VS Code配置用戶數據目錄 3
1.2.5 安裝 Python擴展 3
1.3創建 Python虛擬環境(可選) 3
1.4安裝 PySide6庫 · 4
1.5在 VS Code中選擇 Python解析器·· 4
1.6驗證開發環境是否搭建成功 ····· 5
第 2章 Qt基礎對象 ·· 6
2.1 QObject類與 Qt對象模型 ··· 6
2.2建立對象的層級關係 ····· 6
2.3事件與 event方法 ···· 7
2.3.1 接受與忽略事件 · 9
2.3.2 sendEvent與 postEvent 10
2.3.3 自定義事件 · 12
2.3.4 事件過濾器 · 14
2.4信號與槽 ···· 16
2.4.1 一個信號連線多個槽 ··· 17
2.4.2 帶參數的信號 ··· 18
2.4.3 使用 C++成員方法的簽名格式 ····· 19
2.4.4 信號的類型重載 ····· 20
2.4.5 讓信號與槽自動建立連線 · 21
2.4.6 示例:隨機變換視窗的背景顏色 ·· 22
2.4.7 信號阻絕器 · 24
2.5位元組序列—— QByteArray · 26
2.5.1 替換字元串 · 27
2.5.2 數值到字元串的轉換 ··· 28
2.5.3 字元串到數值的轉換 ··· 28
2.5.4
重複字元串 · 29
2.5.5
數據截取 ···· 29
2.5.6
切片 30
2.5.7
Base64字元串·· 31
2.5.8
拆分字元串 · 32
2.5.9
頻數統計 ···· 32
2.6 QBuffer · 32
2.6.1
基本的讀寫操作 ····· 32
2.6.2
使用已有的 QByteArray對象·· 34
2.6.3
設定讀寫位置 ··· 34
2.7位序列—— QBitArray·· 35
2.7.1
設定和清除二進制位 ··· 35
2.7.2
頻數統計 ···· 36
2.8 QSysInfo ····· 36
2.9 Qt的動態屬性 ·· 37
2.10生成隨機數 ····· 38
2.10.1設定隨機數的種子 ··· 38
2.10.2使用內置的 QRandomGenerator實例 ··· 40
2.
10.3指定隨機數的範圍 ··· 40
第 3章 Qt應用程式 42
3.
1三個應用程式類 ····· 42
3.
2示例:控制台應用程式 ····· 43
3.3命令行參數
44
3.3.1
示例:分析位置參數 ··· 45
3.3.2
添加選項參數 ··· 46
3.3.3
示例:分析選項參數 ··· 47
3.3.4
幫助信息和版本信息 ··· 48
3.3.5
示例:顯示幫助信息 ··· 48
3.3.6
parse方法與 process方法·· 50
3.3.7
示例:通過命令行參數運行其他應用程式 ···· 50
3.3.8
示例:根據命令行參數設定視窗的呈現方式 52
3.
4圖形化應用程式 ····· 53
第 4章 QWindow···· 55
4.1關於
QWindow類 ·· 55
4.1.1
一個簡單的視窗 ····· 55
4.1.2
視窗標題 ···· 56
4.1.3
設定視窗的位置和大小 ····· 56
4.1.4
示例:設定視窗的位置和大小 ····· 57
4.1.5
示例:處理視窗的 Resize事件····· 57
4.2繪製視窗內容
··· 58
4.2.1 QBackingStore ·· 59
4.2.2 示例:繪製三角形 · 60
目錄 V
4.2.3 QFont ···· 62
4.2.4 示例:在視窗上繪製文本 · 62
4.3 QRasterWindow 63
4.4滑鼠事件
···· 64
4.4.1 QMouseEvent···· 64
4.4.2
示例:實時記錄滑鼠指針的位置 ·· 64
4.4.3
示例:處理滑鼠按鍵事件 · 66
4.5鍵盤事件
···· 66
4.5.1
示例:繪製鍵盤輸入的字元 ··· 67
4.5.2
示例:通過方向鍵移動視窗 ··· 68
4.6嵌套視窗
···· 69
4.6.1
示例:父子視窗 ····· 69
4.6.2
示例:按鈕 · 70
第 5章視窗組件 ····· 74
5.1
QWidget類· 74
5.1.1
示例: QWidget類的簡單用法 74
5.1.2
示例:父子視窗 ····· 75
5.
2視窗的顯示方式 ····· 77
5.3拖放操作
···· 78
5.3.1
QMimeData類·· 78
5.3.2
QDrag類····· 79
5.3.3
DropAction枚舉····· 79
5.3.4
示例:拖放數據到其他程式 ··· 80
5.3.5
拖放事件 ···· 82
5.3.6 QDropEvent 82
5.3.7 QDragMoveEvent ··· 82
5.3.8 QDragEnterEvent···· 83
5.3.9 QDragLeaveEvent··· 83
5.
3.10拖放事件的傳遞 ··· 83
5.
3.11示例:通過拖放打開圖像檔案 ···· 83
5.
3.12示例:拖放取色器 ····· 85
5.4剪貼簿
·· 87
5.4.1
示例:複製與貼上文本內容 ··· 88
5.4.2
示例:監視剪貼簿的數據變化 ····· 89
5.4.3
示例:複製和貼上自定義數據 ····· 90
5.
5調整視窗的透明度 · 92
5.6調色板
·· 93
5.6.1
示例:切換顏色主題 ··· 94
5.6.2
示例:帶紋理的背景畫刷 · 96
6.
1常用的按鈕組件 ····· 98
第 6章按鈕 · 98
6.2 QPushButton···100
6.2.1
示例:將多個按鈕的 clicked信號綁定到同一個方法 ··· 100
6.2.2
示例:按鈕的“開關”狀態 · 101
6.2.3
重複按鈕 ·· 101
6.2.4
示例:使用重複按鈕調整矩形的寬度 ···· 102
6.2.5
示例:帶下拉選單的按鈕 ····· 103
6.3 QCheckBox····· 104
6.3.1
示例:請選擇你喜歡的早餐 · 105
6.3.2
示例:讓 QCheckBox對象之間相互排斥 ···· 106
6.4 QRadioButton · 107
6.4.1
示例:使用 QGroupBox為 QRadioButton列表分組 ····· 107
6.4.2
示例:使用 QButtonGroup類為 QRadioButton分組 ····· 108
6.5按鈕分組
·· 109
6.5.1
示例:修改矩形的顏色 ··· 110
6.5.2
示例:調整 QLabel組件的字型大小 111
6.6在按鈕上顯示圖示 ····· 113
6.6.1
示例:帶圖示的按鈕 · 114
6.6.2
示例:為“禁用”狀態自定義圖示 ·· 115
6.6.3
示例: QPushButton的“開關”圖示 ····· 116
6.6.4
示例:手動繪製圖示 · 117
6.7按鈕與快捷鍵
· 118
第 7章布局 ····· 120
7.1布局管理
·· 120
7.2“盒子”模型
··120
7.2.1
示例: QBoxLayout的基本用法 ·· 120
7.2.2
兩個便捷類型 · 122
7.2.3
拉伸比例 ·· 123
7.2.4
示例:如何避免子項空間被拉伸 124
7.3格線布局
·· 125
7.3.1
示例:三行三列的格線布局 · 125
7.3.2
跨行/跨列布局 126
7.3.3
示例:跨列布局 ··· 127
7.3.4
示例:調整行 /列的拉伸比例 127
7.
4組件的縮放策略 ··· 129
7.4.1
修改縮放策略 · 130
7.4.2
示例:調整按鈕的縮放策略 · 131
7.5表單布局
·· 131
7.5.1
addRow方法 ·· 132
7.5.2
示例:填寫收件人信息 ··· 132
7.6 QStackedLayout····134
7.6.1
示例:使用方向按鍵切換 QStackedLayout中的組件···· 134
7.6.2
示例:使用 QStackedWidget組件····· 136
目錄 VII
第 8章輸入組件 ··· 138
8.1 QLineEdit · 138
8.1.1
setText方法和 insert方法的區別 139
8.1.2
示例:對比 setText方法和 insert方法 ··· 139
8.1.3
示例:限制昀大字元數 ··· 139
8.1.4
輸入掩碼 ·· 140
8.1.5
示例:日期輸入掩碼 · 141
8.1.6
自動完成 ·· 142
8.1.7
示例:自動完成的簡單套用 · 142
8.1.8 CompletionMode··· 143
8.2 QTextEdit·· 145
8.2.1
示例:設定文本的顏色 ··· 145
8.2.2
示例:顯示 HTML內容·· 146
8.2.3
示例:通過 HTML呈現圖像 148
8.2.4
示例:顯示 Markdown內容·· 149
8.2.5
示例:自定義上下文選單 ····· 150
8.3數值輸入組件
· 151
8.3.1
示例: QSpinBox與 QDoubleSpinBox的使用 ···· 152
8.3.2
示例:設定數值的有效範圍 · 153
8.3.3
示例:改變按鈕符號 · 154
8.3.4
示例:“迴旋”數值 · 155
8.3.5
前綴與後綴 ····· 155
8.3.6
步長值 156
8.3.7
QDoubleSpinBox組件的精度 156
8.4日期和時間
···· 157
8.4.1
示例:獲取 QDateTimeEdit中輸入的值 · 157
8.4.2
示例:使用日曆組件 · 159
8.4.3
獨立使用 QCalendarWidget ··· 160
第 9章容器組件 ··· 161
9.1將
QWidget組件作為容器 ····· 161
9.
2示例:自定義容器 ····· 162
9.3 QFrame ····· 163
9.3.1
框線形狀 ·· 163
9.3.2
陰影效果 ·· 164
9.3.3
示例: Box與 Panel形狀的區別 · 164
9.3.4
示例:“凸起”和“凹陷”陰影的區別 · 165
9.3.5
中線( mid-line) ·· 166
9.3.6
setFrameStyle方法 ····· 166
9.4 QTabWidget ···· 167
9.4.1
示例:動態添加頁面 · 167
9.4.2
示例:設定標籤欄的位置 ····· 168
9.4.3
示例:帶圖示的標籤 · 169
9.4.4
使用快捷鍵 ····· 170
9.5 QGroupBox····· 170
9.5.1
示例: QGroupBox的基礎用法··· 170
9.5.2
示例:設定標題的對齊方式 · 171
9.5.3
示例:啟用分組框的 Check功能 ····· 172
9.6 QScrollArea ···· 173
9.6.1
示例:在 QScrollArea中承載自定義組件···· 173
9.6.2
示例:設定內容組件的對齊方式 175
9.6.3
示例:拉伸圖像 ··· 177
9.7 QToolBox·· 178
9.7.1
示例:帶圖示的工具箱條目 · 178
9.7.2
示例:處理 currentChanged信號 180
第 10章選單欄、工具列與狀態欄 ···· 181
10.1 QMenu ···· 181
10.1.1
示例:兩種添加 QAction的方案 ·· 181
10.1.2
示例:處理 QMenu的 triggered信號 · 182
10.1.3
示例: exec方法和 popup方法的區別 184
10.2
選單欄 ···· 184
10.2.1
示例:向選單欄添加選單 · 185
10.2.2
示例:在布局中使用選單欄 ··· 185
10.2.3
示例:子選單 ··· 186
10.2.4
示例:添加帶圖示的選單 · 187
10.2.5
帶 check標記的選單 ···· 188
10.3
工具列 ···· 189
10.3.1
圖示大小與樣式 ····· 189
10.3.2
示例:工具列的基礎用法 · 189
10.3.3
示例:在 QMainWindow中使用工具列 ··· 190
10.4
contextMenu事件····· 191
10.4.1
QContextMenuEvent類 191
10.4.2
示例:用上下文選單改變視窗顏色 ···· 192
10.5
狀態欄 ···· 193
10.5.1
addWidget與 addPermanentWidget方法 ··· 193
10.5.2
示例:狀態欄實時顯示視窗的大小 ···· 194
10.5.3
示例:在 QMainWindow中使用狀態欄 ··· 195
10.6
快捷鍵 ···· 196
10.6.1
示例:使用快捷鍵 · 196
10.6.2
標準快捷鍵 · 198
10.7 QWidgetAction ··· 199
10.7.1
示例:在選單中顯示滑動條組件 ·· 199
10.7.2
示例:在上下文選單中使用自定義組件 ·· 200
目錄 IX
第 11章主視窗 ····· 203
11.1 QMainWindow····203
11.1.1
示例:設定主視窗的內容組件 203
11.1.1
示例:設定主視窗的內容組件 203
11.1.2
示例:構建較複雜的主視窗 ···· 204
11.1.3
示例:在運行階段添加或刪除工具列 206
11.2 QDockWidget 207
11.2.1 DockWidgetArea ····· 208
11.2.2
示例:簡單的 Dock視窗··· 208
11.2.3
allowedAreas屬性 ·· 210
11.2.4
示例: QDockWidget與選單欄 210
11.3 MDI··· 211
11.3.1
添加子視窗 · 212
11.3.2
示例:簡單的 MDI應用程式·· 212
11.3.3
示例:打開多個文本檔案 ·· 214
11.3.4
示例:排列子視窗 · 216
11.3.5
示例:標籤頁視圖 · 218
第 12章互動組件 · 220
12.1
進度條 ···· 220
12.1.1
示例:水平和垂直進度條 · 220
12.1.2
示例:模擬耗時任務 ··· 221
12.1.3
示例:設定進度文本的格式 ··· 223
12.2
滑動條 ···· 224
12.2.1
示例:處理 valueChanged信號····· 225
12.2.2
示例:設定刻度的顯示位置 ··· 225
12.2.3
步長 227
12.2.4
示例:設定 QSlider組件的步長 ··· 227
12.3
儀錶盤 ···· 229
12.3.1
示例:使用 QDial組件 ····· 229
12.3.2
示例:顯示刻度線 · 230
12.3.3
wrapping屬性··· 231
12.4 QLCDNumber····· 232
12.4.1
示例:顯示整數和浮點數 · 232
12.4.2
示例:切換進制 ····· 233
12.5
托盤圖示 234
12.5.1
示例:顯示和隱藏托盤圖示 ··· 234
12.5.2
示例:添加上下檔案選單 · 235
12.5.3
示例:傳送“氣球”訊息 · 235
12.6
工具提示 237
12.6.1
示例:使用 setToolTip方法 ···· 237
12.6.2
示例:攔截 ToolTip事件··· 237
12.6.3
示例:在工具提示中使用 HTML · 239
12.6.4
示例:修改調色板 · 240
第 13章對話框 ····· 242
13.1 QDialog··· 242
13.1.1
示例:實現自定義對話框 · 242
13.1.2
示例:異步對話框 · 244
13.2 QInputDialog 245
13.2.1
示例: QInputDialog的基本用法 ·· 246
13.2.2
QInputDialog的信號 ···· 248
13.2.3
示例:實時顯示輸入內容 · 248
13.2.4
示例:使用下拉列表框完成文本輸入 250
13.2.5
便捷方法 ····· 251
13.2.6
示例:使用便捷方法打開輸入對話框 252
13.3 QColorDialog 253
13.3.1
示例:設定文本顏色 ··· 253
13.3.2
自定義顏色區域 ····· 254
13.3.3
示例:使用便捷方法 ··· 255
13.4 QFileDialog··· 256
13.4.1
示例:切換檔案選擇模式 · 256
13.4.2
示例:選擇目錄 ····· 258
13.4.3
便捷方法 ····· 258
13.5 QFontDialog · 261
13.5.1
示例:使用新增的 open方法·· 261
13.5.2
示例:使用便捷方法 ··· 262
13.6 QDialogButtonBox ··· 263
13.6.1
按鈕角色 ····· 263
13.6.2
示例:使用按鈕角色 ··· 264
13.6.3
標準按鈕 ····· 265
13.6.4
示例:展示所有標準按鈕 · 266
13.6.5
示例:標準按鈕與 clicked信號 ···· 267
13.6.6
示例:用戶註冊對話框 ····· 268
13.7 QWizard··270
13.7.1
示例:創建簡單的嚮導對話框 271
13.7.2
WizardButton枚舉·· 272
13.7.3
示例:設定按鈕的文本 ····· 272
13.7.4
示例:重寫 nextId方法 ····· 273
13.7.5
示例:共享頁面數據 ··· 274
13.7.6
嚮導風格與圖示 ····· 276
13.7.7
示例:為嚮導設定圖示 ····· 277
13.7.8
示例:使用自定義按鈕 ····· 278
13.8 無按鈕對話框 ····· 279
13.9 QMessageBox ····· 283
13.9.1
示例:使用標準按鈕 ··· 283
13.9.2
示例:使用標準圖示 ··· 284
13.9.3
靜態成員 ····· 286
13.9.4
示例:使用靜態方法 ··· 287
第 14章列表模型與視圖 ·· 289
14.1 模型的抽象基類 · 289
14.1.1 ItemDataRole ···· 290
14.1.2
示例:整數列表模型 ··· 290
14.1.3
推薦的基礎模型 ····· 292
14.1.4
示例:學生表 ··· 292
14.1.5
示例:突出顯示銷量高於平均值的行 294
14.2 QStringListModel ····· 296
14.3 QStandardItemModel 297
14.3.1
示例:員工信息表 · 297
14.3.2
示例:顯示圖示 ····· 299
14.3.3
示例:樹形視圖 ····· 300
14.3.4
示例:多列樹形視圖 ··· 301
14.4 QFileSystemModel ··· 303
14.4.1
示例:顯示目錄和檔案 ····· 303
14.4.2
示例:使用過濾器 · 304
14.4.3
示例:創建和刪除目錄 ····· 305
14.5 編輯功能 306
14.5.1
示例:可編輯列表 · 307
14.5.2
插入和刪除數據 ····· 309
14.5.3
示例:新增 /刪除圖書信息 310
14.6 QListWidget··314
14.6.1
示例:添加與刪除列表項 · 315
14.6.2
示例:排序 · 316
14.7 QTableWidget ····· 318
14.7.1
示例:訂單表 ··· 318
14.7.2
示例:身高信息表 · 319
14.8 QTreeWidget·320
第 15章目錄與檔案 ··· 322
15.1 QDir··322
15.1.1
示例: QDir類的基本用法 322
15.1.2
示例:複製和移動目錄 ····· 323
15.1.3
枚舉目錄和檔案 ····· 325
15.1.4
示例:列出動態程式庫檔案並按大小排序 ···· 326
15.1.5
示例:創建和刪除目錄 ····· 327
15.2 QFile · 328
15.2.1
示例:追加檔案內容 ··· 329
15.2.2
示例:讀寫文本檔案 ··· 330
15.2.3
示例:創建符號連結 ··· 332
15.3 QSaveFile 332
15.4 QBuffer ··· 333
15.5 QTextStream · 334
15.5.1
示例: QTextStream類的簡單使用 334
15.5.2
示例:欄位寬度與對齊方式 ··· 334
15.5.3
示例:寫入不同進制的整數 ··· 335
15.6 QDataStream·336
15.6.1
示例:簡單的讀寫操作 ····· 336
15.6.2
示例:保存和恢復調色板數據 337
第 16章動畫 ··· 340
16.
1與動畫有關的類型 ··· 340
16.2
基於屬性的動畫 · 340
16.2.1
示例:簡單的位移動畫 ····· 341
16.2.2
示例: stateChanged信號··· 342
16.3
自定義屬性 ··· 344
16.4
關鍵幀動畫 ··· 347
16.5
動畫分組 348
16.5.1
示例:按順序運行的動畫分組 348
16.5.2
示例:並行的動畫分組 ····· 349
第 17章 Qt樣式表 351
17.1
Qt樣式表概述 ···· 351
17.1.1
基本格式 ····· 351
17.1.2
示例:如何設定樣式表 ····· 353
17.1.3
示例:樣式的繼承和覆蓋 · 354
17.1.4
示例:從檔案載入 QSS····· 355
17.2
盒子模型 356
17.2.1
示例:設定按鈕的外邊距 · 357
17.2.2
示例:設定 QListWidget對象的內邊距 ··· 358
17.2.3
框線 359
17.2.4
示例:為 QLabel組件設定框線樣式·· 360
17.2.5
圓角框線 ····· 362
17.2.6
示例:帶圓角框線的按鈕 · 362
17.3
顏色 ·· 363
17.3.1
示例:設定 QLabel組件的文本顏色 ·· 364
17.3.2
示例:設定 QWidget的背景顏色 · 365
17.4
漸變畫刷 366
17.4.1
線性漸變 ····· 366
17.4.2
示例:使用線性漸變顏色填充背景 ···· 367
17.4.3
徑向漸變 ····· 368
17.4.4
示例:移動徑向漸變的圓心位置 ·· 369
17.4.5
示例:移動徑向漸變的焦點位置 ·· 370
17.4.6
錐形漸變 ····· 371
17.4.7
示例:使用錐形漸變填充 QFrame組件 ··· 372
17.4.8
漸變區域的延展方案 ··· 373
17.4.9
示例:在徑向漸變中使用 spread參數 ····· 375
17.5
字型 ·· 376
17.5.1
示例:設定 QLabel和 PushButton組件的字型 ···· 377
17.5.2
示例:為 QTableWidget設定字型 378
17.5.3
示例:轉換大小寫 · 379
17.6
偽狀態 ···· 381
17.6.1
示例:自定義 QPushButton的樣式 ···· 382
17.6.2
示例: QRadioButton被選擇後的樣式 384
17.6.3
示例:自定義列表項的外觀 ··· 384
17.7
子控制項 ···· 385
17.7.1
示例:使用漸變畫刷填充被選中的列表項 ···· 386
17.7.2
示例:自定義 QCheckBox的狀態指示圖示 ·· 387
17.7.3
示例:設定 QTableWidget的表頭樣式 ····· 388
第 18章多執行緒 ····· 390
18.1
單執行緒與多執行緒的比較 · 390
18.2
QThread類 ··· 390
18.2.1
示例:隨機變換顏色 ··· 391
18.2.2
示例:使用 moveToThread方法 ··· 393
18.3 QThreadPool · 395
18.3.1 QRunnable ·· 395
18.3.2 示例:向 QThreadPool投放 3個任務 395
18.4 互斥鎖 ···· 398
18.4.1
示例:將 QMutex用於多執行緒運算 ···· 399
18.4.2
示例:使用 QMutexLocker類· 401
18.5 QWaitCondition ·· 402
18.5.1
示例:多階段任務 · 403
18.5.2
示例:等待鍵盤輸入 ··· 404
第 19章 QML基礎····· 406
19.1
QML與 QtQuick 406
19.2
QML文檔的結構····· 407
19.2.1
import語句 · 407
19.2.2
對象聲明 ····· 408
19.3
載入 QML文檔·· 409
19.3.1 QQmlApplicationEngine ····· 409
19.3.2 示例:使用 QQmlApplicationEngine類載入 QML檔案·· 409
19.3.3 QQuickView 410
19.3.4 示例:使用 QQuickView類載入 QML文檔 ·· 411
19.4
QQuickItem類···· 412
19.5
布局 ·· 412
19.5.1
示例:使用 x、y屬性定位矩形···· 412
19.5.2
示例: Z順序 ··· 414
19.5.3
示例: Column ·· 415
19.5.4
示例: Row · 416
19.5.5
示例: Grid · 417
19.5.6
示例: RowLayout ·· 418
19.5.7
示例:在 GridLayout中定位子對象 ··· 419
19.6
控制項基類—— Control····· 421
19.6.1
示例:處理滑鼠單擊事件 · 422
19.6.2
示例:處理鍵盤事件 ··· 423
19.7
按鈕控制項 425
19.7.1
示例: Button···· 426
19.7.2
示例: CheckBox ···· 427
19.7.3
示例: RadioButton· 429
19.7.4
示例: ButtonGroup 430
19.8
輸入控制項 431
19.8.1
示例: TextInput ····· 431
19.8.2
示例: TextField 432
19.8.3
示例: SpinBox· 433
19.8.4
示例: SpinBox中數值與文本的轉換 · 434
19.8.5
示例: Slider ····· 436
19.8.6
示例: RangeSlider · 436
19.9
選單 ·· 438
19.9.1
示例:上下文選單 · 439
19.9.2
示例:使用 Action對象 ···· 440
19.9.3
示例:選單欄 ··· 442
19.9.4
示例:帶圖示的選單項 ····· 443
19.10工具列
·· 444
19.
11列表控制項—— ListView· 447
19.11.1 ListModel 447
19.
11.2示例:使用 ListModel類定義簡單列表 448
19.11.3代理
··· 449
19.11.4 XmlListModel ·····449
19.12在
QWidget中呈現 QtQuick對象 · 451