打开主菜单

求真百科

QML和QtQuick快速入门

来自 孔夫子网 的图片

QML和QtQuick快速入门》,出版社: 北京航空航天大学出版社,ISBN:9787512440739。

书籍是人类进步的阶梯,合理阅读使一个人完善自身的知识结构[1],全面提升人文素质[2],为走向成功奠定坚实的基础。

目录

内容简介

本书是基于Qt 的QML 和uick入门书籍,详细介绍了QML 语言的语法和编写uick程序需要用到的基本知识点。本书内容主括QML语法、uick基础知识以及在图形动画、3D、数据处理、多媒体和移动开发方面的应用等。本书全面系统讲解了uick编程的方方面面,与主要讲解Qt Widgets编程的《Qt Creator快速入门(第4版 》相辅相成,可以帮助初学者快速入 门uick编程。

目录

第1章 uick的世界 1

1.1 QML和uick简介 1

1.1.1 QML 1

1.1.2 uick 2

1.1.3 uick和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 uick应用 8

1.4.1 创建uick应用 9

1.4.2 使用Qt资源文件 12

1.4.3 设置应用程序图标 15

1.4.4 uick程序的发布 15

1.5 创建uick UI项目 17

1.6 Qt帮助和本书源码的使用 18

1.6.1 Qt帮助的使用 18

1.6.2 本书源码的使用

1.7 小 结

第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

?6?1

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文档

2.6.1 通过QML文档定义对象类型

2.6.2 QML组件 67

2.6.3 作用域和命名解析 69

2. 资源加载和网络透明性 75

2.6.5 QML的国际化 76

2.6.6 QML的编码约定 79

2.7 QML模块 82

2.8 小 结 83

第3章 uick基础 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 1

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章 uick控件和uick对话框 130

4.1 uick控件项目 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. TextArea和TextField 160

4.6.5 Tumbler和SpinBox 160

4.7 菜单类控件 163

4.8 导航类控件 1

4.9 弹出类控件 165

4.10 分隔类控件 167

4.11 日期类控件 168

4.12 设置控件样式 170

4.12.1 使用控件样式 170

4.12.2 自定义控件 172

4.13 uick 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 0

5.6.1 精灵引擎介绍 0

5.6.2 AnimatedSprite 3

5.7 Flickable和Flipable 4

5.7.1 弹动效果Flickable 4

5.7.2 翻转效果Flipable 7

5.8 小 结 8

第6章 粒子系统和图形效果 9

6.1 粒子系统 9

6.1.1 ParticleSystem 9

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章 uick 3D 241

7.1 创建一个uick 3D项目 242

7.2 场 景 244

7.2.1 场景坐标 244

7.2.2 场景环境 246

7.2.3 基于图像的照明和天空盒 248

7.2.4 uick 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. 纹理贴图 261

7.7 在3D场景中添加2D内容 263

7.8 实例化渲染 265

7.9 3D粒子系统 268

7.10 uick 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 3

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. 状图 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 使用ImageCaptur行照 3

11.3.4 使用 MediaRecorde行音录制 365

11.4 小 结 367

第12章 QML与C++的集成 368

12.1 QML运行时的C++类 369

12.1.1 mlEngine、mlApplicationEngine和uickView 369

12.1.2 mlContext 370

12.1.3 mlComponent 372

12.1.4 mlExpression 373

12.2 在 QML类型系统中注册C++类型 374

12.2.1 使用的qmlRegisterTyp 相关函数 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 使用uick 模块定义可视化项目 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__

参考文献