第1章 走进Qt Quick的世界 1
1.1 QML和Qt Quick简介 1
1.1.1 QML 1
1.1.2 Qt Quick 2
1.1.3 Qt Quick和Qt Widgets用户界面对比 3
1.2 Qt 6的下载安装和Qt Creator开发环境简介 4
1.2.1 Qt 6的下载与安装 4
1.2.2 Qt Creator开发环境 5
1.3 运行示例程序 7
1.4 Qt Quick应用 8
1.4.1 创建Qt Quick应用 9
1.4.2 使用Qt资源文件 12
1.4.3 设置应用程序图标 15
1.4.4 Qt Quick程序的发布 15
1.5 创建Qt Quick UI项目 17
1.6 Qt帮助和本书源码的使用 18
1.6.1 Qt帮助的使用 18
1.6.2 本书源码的使用 20
1.7 小 结 20
第2章 QML语法 21
2.1 QML语法基础 21
2.2 import导入语句 24
2.2.1 模块(命名空间)导入语句 24
2.2.2 目录导入语句 25
2.2.3 JavaScript资源导入语句 27
2.3 QML类型系统 28
2.3.1 基本类型 28
2.3.2 JavaScript类型 30
2.3.3 对象类型 30
2.4 对象特性(Attributes) 30
??
2.4.1 id特性 31
2.4.2 属性特性 31
2.4.3 信号和信号处理器特性 40
2.4.4 方法特性 44
2.4.5 附加属性和附加信号处理器 46
2.4.6 枚举特性 47
2.5 集成JavaScript 48
2.5.1 JavaScript表达式和属性绑定 48
2.5.2 从JavaScript动态创建 QML对象 53
2.5.3 在QML中定义JavaScript资源 57
2.5.4 在QML中导入JavaScript资源 59
2.5.5 JavaScript宿主环境 62
2.6 QML文档 64
2.6.1 通过QML文档定义对象类型 64
2.6.2 QML组件 67
2.6.3 作用域和命名解析 69
2.6.4 资源加载和网络透明性 75
2.6.5 QML的国际化 76
2.6.6 QML的编码约定 79
2.7 QML模块 82
2.8 小 结 83
第3章 Qt Quick基础 84
3.1 基础可视项目 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 鼠标事件(MouseEvent)和滚轮事件(WheelEvent) 115
3.3.3 拖放事件(DragEvent) 117
3.3.4 键盘事件(KeyEvent)和焦点作用域(FocusScope) 120
3.3.5 定时器(Timer) 126
3.4 使用Loader动态加载组件 126
3.4.1 Loader的大小与行为 127
3.4.2 从加载的项目中接收信号 127
3.4.3 焦点和键盘事件 128
3.5 小 结 129
第4章 Qt Quick控件和Qt Quick对话框 130
4.1 Qt Quick控件项目 131
4.1.1 窗口 Window 131
4.1.2 应用程序主窗口ApplicationWindow 133
4.1.3 控件基类型Control 138
4.2 按钮类控件 139
4.2.1 AbstractButton、Button和RoundButton 139
4.2.2 CheckBox、RadioButton和ButtonGroup 141
4.2.3 DelayButton和Switch 143
4.3 容器类控件 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 委托类控件 153
4.4.1 ItemDelegate、CheckDelegate、RadioDelegate和
SwitchDelegate 153
4.4.2 SwipeDelegate 154
4.5 指示器类控件 157
4.5.1 BusyIndicator 157
4.5.2 ProgressBar 158
4.6 输入类控件 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 菜单类控件 163
4.8 导航类控件 164
4.9 弹出类控件 165
4.10 分隔类控件 167
4.11 日期类控件 168
4.12 设置控件样式 170
4.12.1 使用控件样式 170
4.12.2 自定义控件 172
4.13 Qt Quick Dialogs模块 173
4.13.1 颜色对话框ColorDialog 173
4.13.2 文件对话框FileDialog 174
4.13.3 目录对话框FolderDialog 176
4.13.4 字体对话框FontDialog 176
4.13.5 消息对话框 MessageDialog 177
4.14 小 结 177
第5章 图形动画基础 178
5.1 颜色、渐变和调色板 179
5.1.1 颜色color 179
5.1.2 渐变Gradient 181
5.1.3 系统调色板SystemPalette 181
5.2 图片、边界图片和动态图片 182
5.2.1 图片Image 182
5.2.2 边界图片BorderImage 184
5.2.3 动态图片 AnimatedImage 185
5.3 缩放、旋转和平移变换 186
5.3.1 使用属性实现简单变换 186
5.3.2 使用Transform实现高级变换 187
5.4 状态State 189
5.4.1 创建状态 189
5.4.2 默认状态和when属性 191
5.5 动画和过渡 192
5.5.1 使用属性动画 192
5.5.2 使用预定义的目标和属性 193
5.5.3 在状态改变时使用过渡 194
5.5.4 使用默认的行为动画 195
5.5.5 使用并行或顺序动画组 196
5.5.6 使用动画师动画 197
5.5.7 控制动画的执行 198
5.5.8 共享动画实例 199
5.6 精灵动画Sprite Animations 200
5.6.1 精灵引擎介绍 200
5.6.2 AnimatedSprite 203
5.7 Flickable和Flipable 204
5.7.1 弹动效果Flickable 204
5.7.2 翻转效果Flipable 207
5.8 小 结 208
第6章 粒子系统和图形效果 209
6.1 粒子系统 209
6.1.1 ParticleSystem 209
6.1.2 发射器Emitter 211
6.1.3 渲染器ParticlePainters 212
6.1.4 TrailEmitter 214
6.1.5 粒子组 216
6.1.6 随机参数 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 动感模糊效果 236
6.2.8 发光效果 237
6.2.9 遮罩效果 239
6.3 小 结 240
第7章 Qt Quick 3D 241
7.1 创建一个Qt Quick 3D项目 242
7.2 场 景 244
7.2.1 场景坐标 244
7.2.2 场景环境 246
7.2.3 基于图像的照明和天空盒 248
7.2.4 Qt Quick 3D场景效果 250
7.3 相 机 250
7.3.1 透视相机 251
7.3.2 正交相机 253
7.4 光源和阴影 253
7.4.1 平行光源 254
7.4.2 点光源 254
7.4.3 聚光灯光源 255
7.5 网 格 256
7.5.1 内置网格 256
7.5.2 使用Balsam工具转换网格文件 257
7.6 材质和纹理 259
7.6.1 DefaultMaterial 259
7.6.2 PrincipledMaterial 260
7.6.3 SpecularGlossyMaterial 261
7.6.4 纹理贴图 261
7.7 在3D场景中添加2D内容 263
7.8 实例化渲染 265
7.9 3D粒子系统 268
7.10 Qt Quick 3D物理模拟 269
7.11 小 结 274
第8章 模型和视图 275
8.1 模型/视图架构简介 275
8.2 数据模型 277
8.2.1 整数作为模型 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 在委托中使用必需属性来匹配模型角色 288
8.2.9 使用C++扩展 QML模型 289
8.2.10 LocalStorage 293
8.2.11 WorkerScript 297
8.3 视图类型 298
8.3.1 ListView 298
8.3.2 GridView 304
8.3.3 视图过渡 305
8.3.4 TableView和TreeView 308
8.3.5 PathView 312
8.4 委托选择器DelegateChooser 315
8.5 小 结 317
第9章 Qt图表 318
9.1 创建一个图表项目 319
9.2 坐标轴Axes 320
9.2.1 数值坐标轴和对数数值坐标轴 321
9.2.2 分类坐标轴 322
9.2.3 柱形图分类坐标轴 322
9.2.4 日期时间坐标轴 323
9.2.5 坐标轴的共有属性 324
9.3 图例Legend 325
9.4 ChartView 326
9.4.1 设置主题 327
9.4.2 启用动画 328
9.5 使用数据动态创建图表 328
9.6 常用图表类型 331
9.6.1 折线图、曲线图和散点图 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 极坐标图 337
9.7 小 结 338
第10章 Qt Data Visualization数据可视化 339
10.1 3D柱形图 'A1?339
10.1.1 3D坐标轴 341
10.1.2 数据代理 343
10.1.3 3D系列 345
10.2 自定义3D场景 346
10.3 设置主题 346
10.4 选择模式和切片视图 349
10.5 3D散点图 350
10.6 3D曲面图 352
10.7 小 结 355
第11章 多媒体应用 356
11.1 播放音频 357
11.1.1 播放压缩音频 357
11.1.2 播放未压缩音频 359
11.2 播放视频 360
11.2.1 使用 MediaPlayer播放视频文件 360
11.2.2 对视频使用图形效果 361
11.3 媒体捕获 363
11.3.1 CaptureSession和 MediaDevices 363
11.3.2 相机Camera 363
11.3.3 使用ImageCapture进行拍照 364
11.3.4 使用 MediaRecorder进行音视频录制 365
11.4 小 结 367
第12章 QML与C++的集成 368
12.1 QML运行时的C++类 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类型系统中注册C++类型 374
12.2.1 不再推荐使用的qmlRegisterType()相关函数 374
12.2.2 基于宏的注册方式 375
12.2.3 注册值类型 378
12.2.4 注册不可实例化的对象类型 379
12.2.5 注册单例类型 379
12.2.6 类型的修订和版本 380
12.3 定义QML特定类型和属性 381
12.3.1 提供附加属性 381
12.3.2 属性修饰符类型 383
12.3.3 指定QML对象类型的默认属性和父级属性 386
12.3.4 接收对象初始化通知 387
12.3.5 使用Qt Quick 模块定义可视化项目 388
12.4 在 QML中使用C++特性 388
12.4.1 数据类型处理和拥有权 388
12.4.2 数据类型的转换 388
12.4.3 使用C++属性 393
12.4.4 使用函数和槽 397
12.4.5 使用信号 398
12.5 在C++中使用QML对象 399
12.5.1 使用C++加载 QML对象 399
12.5.2 使用对象名字访问加载的QML对象 401
12.5.3 使用C++访问 QML对象成员 401
12.6 小 结 405
第13章 Qt移动开发入门 406
13.1 Qt Android开发配置 406
13.1.1 工具软件的下载和安装 406
13.1.2 使用手机运行Qt Android程序 408
13.2 创建演示程序 411
13.2.1 创建应用主窗口 411
13.2.2 拍照功能 416
13.2.3 多点触控 8230 _3418
13.2.4 传感器 419
13.3 发布项目 421
13.4 小 结 423
参考文献 424__