目录
第1章走进QtQuick的世界1
1.1QML和QtQuick简介1
1.1.1QML1
1.1.2QtQuick2
1.1.3QtQuick和QtWidgets用户界面对比3
1.2Qt6的下载安装和QtCreator开发环境简介4
1.2.1Qt6的下载与安装4
1.2.2QtCreator开发环境5
1.3运行示例程序7
1.4QtQuick应用8
1.4.1创建QtQuick应用9
1.4.2使用Qt资源文件12
1.4.3设置应用程序图标15
1.4.4QtQuick程序的发布15
1.5创建QtQuickUI项目17
1.6Qt帮助和本书源码的使用18
1.6.1Qt帮助的使用18
1.6.2本书源码的使用20
1.7小结20
第2章QML语法21
2.1QML语法基础21
2.2import导入语句24
2.2.1模块(命名空间)导入语句24
2.2.2目录导入语句25
2.2.3JavaScript资源导入语句27
2.3QML类型系统28
2.3.1基本类型28
2.3.2JavaScript类型30
2.3.3对象类型30
2.4对象特性(Attributes)30
2.4.1id特性31
2.4.2属性特性31
2.4.3信号和信号处理器特性40
2.4.4方法特性44
2.4.5附加属性和附加信号处理器46
2.4.6枚举特性47
2.5集成JavaScript48
2.5.1JavaScript表达式和属性绑定48
2.5.2从JavaScript动态创建QML对象53
2.5.3在QML中定义JavaScript资源57
2.5.4在QML中导入JavaScript资源59
2.5.5JavaScript宿主环境62
2.6QML文档64
2.6.1通过QML文档定义对象类型64
2.6.2QML组件67
2.6.3作用域和命名解析69
2.6.4资源加载和网络透明性75
2.6.5QML的国际化76
2.6.6QML的编码约定79
2.7QML模块82
2.8小结83
第3章QtQuick基础84
3.1基础可视项目85
3.1.1Item85
3.1.2Rectangle89
3.1.3Text89
3.1.4TextInput96
3.1.5TextEdit101
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.1MouseArea114
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.1Loader的大小与行为127
3.4.2从加载的项目中接收信号127
3.4.3焦点和键盘事件128
3.5小结129
第4章QtQuick控件和QtQuick对话框130
4.1QtQuick控件项目131
4.1.1窗口Window131
4.1.2应用程序主窗口ApplicationWindow133
4.1.3控件基类型Control138
4.2按钮类控件139
4.2.1AbstractButton、Button和RoundButton139
4.2.2CheckBox、RadioButton和ButtonGroup141
4.2.3DelayButton和Switch143
4.3容器类控件143
4.3.1Pane、Frame和GroupBox144
4.3.2Page145
4.3.3ScrollView147
4.3.4Container、SwipeView和TabBar147
4.3.5SplitView150
4.3.6StackView151
4.4委托类控件153
4.4.1ItemDelegate、CheckDelegate、RadioDelegate和
SwitchDelegate153
4.4.2SwipeDelegate154
4.5指示器类控件157
4.5.1BusyIndicator157
4.5.2ProgressBar158
4.6输入类控件158
4.6.1ComboBox158
4.6.2Dial159
4.6.3RangeSlider和Slider159
4.6.4TextArea和TextField160
4.6.5Tumbler和SpinBox160
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.13QtQuickDialogs模块173
4.13.1颜色对话框ColorDialog173
4.13.2文件对话框FileDialog174
4.13.3目录对话框FolderDialog176
4.13.4字体对话框FontDialog176
4.13.5消息对话框MessageDialog177
4.14小结177
第5章图形动画基础178
5.1颜色、渐变和调色板179
5.1.1颜色color179
5.1.2渐变Gradient181
5.1.3系统调色板SystemPalette181
5.2图片、边界图片和动态图片182
5.2.1图片Image182
5.2.2边界图片BorderImage184
5.2.3动态图片AnimatedImage185
5.3缩放、旋转和平移变换186
5.3.1使用属性实现简单变换186
5.3.2使用Transform实现高级变换187
5.4状态State189
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精灵动画SpriteAnimations200
5.6.1精灵引擎介绍200
5.6.2AnimatedSprite203
5.7Flickable和Flipable204
5.7.1弹动效果Flickable204
5.7.2翻转效果Flipable207
5.8小结208
第6章粒子系统和图形效果209
6.1粒子系统209
6.1.1ParticleSystem209
6.1.2发射器Emitter211
6.1.3渲染器ParticlePainters212
6.1.4TrailEmitter214
6.1.5粒子组216
6.1.6随机参数217
6.1.7影响器Affector218
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章QtQuick3D241
7.1创建一个QtQuick3D项目242
7.2场景244
7.2.1场景坐标244
7.2.2场景环境246
7.2.3基于图像的照明和天空盒248
7.2.4QtQuick3D场景效果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.1DefaultMaterial259
7.6.2PrincipledMaterial260
7.6.3SpecularGlossyMaterial261
7.6.4纹理贴图261
7.7在3D场景中添加2D内容263
7.8实例化渲染265
7.93D粒子系统268
7.10QtQuick3D物理模拟269
7.11小结274
第8章模型和视图275
8.1模型/视图架构简介275
8.2数据模型277
8.2.1整数作为模型277
8.2.2ListModel278
8.2.3XmlListModel280
8.2.4ObjectModel282
8.2.5DelegateModel283
8.2.6Package285
8.2.7TableModel286
8.2.8在委托中使用必需属性来匹配模型角色288
8.2.9使用C++扩展QML模型289
8.2.10LocalStorage293
8.2.11WorkerScript297
8.3视图类型298
8.3.1ListView298
8.3.2GridView304
8.3.3视图过渡305
8.3.4TableView和TreeView308
8.3.5PathView312
8.4委托选择器DelegateChooser315
8.5小结317
第9章Qt图表318
9.1创建一个图表项目319
9.2坐标轴Axes320
9.2.1数值坐标轴和对数数值坐标轴321
9.2.2分类坐标轴322
9.2.3柱形图分类坐标轴322
9.2.4日期时间坐标轴323
9.2.5坐标轴的共有属性324
9.3图例Legend325
9.4ChartView326
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章QtDataVisualization数据可视化339
10.13D柱形图A1?339
10.1.13D坐标轴341
10.1.2数据代理343
10.1.33D系列345
10.2自定义3D场景346
10.3设置主题346
10.4选择模式和切片视图349
10.53D散点图350
10.63D曲面图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.1CaptureSession和MediaDevices363
11.3.2相机Camera363
11.3.3使用ImageCapture进行拍照364
11.3.4使用MediaRecorder进行音视频录制365
11.4小结367
第12章QML与C++的集成368
12.1QML运行时的C++类369
12.1.1QQmlEngine、QQmlApplicationEngine和QQuickView369
12.1.2QQmlContext370
12.1.3QQmlComponent372
12.1.4QQmlExpression373
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使用QtQuick模块定义可视化项目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.1QtAndroid开发配置406
13.1.1工具软件的下载和安装406
13.1.2使用手机运行QtAndroid程序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
内容摘要
本书是基于Qt6.4的QML和QtQuick入门书籍,详细介绍了QML语言的语法和编写QtQuick程序需要用到的基本知识点。本书内容主要包括QML语法、QtQuick基础知识以及在图形动画、3D、数据处理、多媒体和移动开发方面的应用等。本书全面系统讲解了QtQuick编程的方方面面,与主要讲解QtWidgets编程的《QtCreator快速入门(第4版)》相辅相成,可以帮助初学者快速入门QtQuick编程。
精彩内容
本书是基于Qt 6.4的QML和Qt Quick入门书籍,详细介绍了QML语言的语法和编写Qt Quick程序需要用到的基本知识点。本书内容主要包括QML语法、Qt Quick基础知识以及在图形动画、3D、数据处理、多媒体和移动开发方面的应用等。本书全面系统讲解了Qt Quick编程的方方面面,与主要讲解Qt Widgets编程的《Qt Creator快速入门(第4版)》相辅相成,可以帮助初学者快速入门Qt Quick编程。
以下为对购买帮助不大的评价