内容简介
第1章 Qt 5简介
1.1 Qt 5架构
1.1.1 模块架构
1.1.2 图形界面库的架构
1.1.3 Qt 5架构主要特点
1.2 Qt 5的特点
1.2.1 Qt 5新增的主要功能
1.2.2 Qt 5与Qt 4的兼容性
1.2.3 C++还是QML
1.2.4 Qt 5源代码文件的编码
1.2.5 移动平台开发
1.3 小结
第2章 将Qt 4代码迁移到Qt 5
2.1 Qt 5版本的HelloWorld
2.1.1 Qt 5的下载与安装
2.1.2 创建Hello World程序
2.1.3 Qt 4程序迁移到Qt 5的注意事项
2.2 Qt 4程序迁移实例
2.2.1 修改编码
2.2.2 修改代码
2.2.3 设置应用程序图标
2.2.4 发布程序
2.3 新的信号槽语法
2.3.1 新旧语法对比
2.3.2 新的语法示例
2.4 对C++11的支持
2.4.1 Lambda表达式
2.4.2 适用于C++11的宏
2.5 全新的插件系统
2.6 小结
第3章 Qt Quick的世界
3.1 全新的QML和Qt Quick
3.2 Qt Quick项目
3.2.1 Qt Quick UI项目
3.2.2 Qt Quick Application项目
3.2.3 运行示例程序
3.2.4 Qt Quick程序的发布
3.3 将QML程序迁移到Qt 5
3.3.1 Qt 5中QML和Qt Quick的更改
3.3.2 QML程序移植示例
3.4 小结
第4章 QML语法
4.1 QML语法基础
4.2 import导入语句
4.2.1 模块(命名空间)导入语句
4.2.2 目录导入语句
4.2.3 JavaScript资源导入语句
4.3 QML类型系统
4.3.1 基本类型
4.3.2 JavaScript类型
4.3.3 对象类型
4.4 对象特性(Attributes)
4.4.1 id特性
4.4.2 属性特性
4.4.3 信号和信号处理器特性
4.4.4 方法特性
4.4.5 附加属性和附加信号处理器
4.5 集成JavaScript
4.5.1 JavaScript表达式
4.5.2 从JavaScript动态创建QML对象
4.5.3 在QML中定义JavaScript资源
4.5.4 在QML中导入JavaScript资源
4.5.5 JavaScript宿主环境
4.6 QML文档
4.6.1 通过QML文档定义对象类型
4.6.2 QML组件
4.6.3 作用域和命名解析
4.6.4 资源加载和网络透明性
4.6.5 QML的国际化
4.6.6 QML的编码约定
4.7 QML模块
4.7.1 定义一个QML模块
4.7.2 支持的QML模块类型
4.8 小结
第5章 Qt Quick基础
5.1 基础可视项目
5.1.1 Item
5.1.2 Rectangle
5.1.3 Text
5.1.4 TextInput
5.1.5 TextEdit
5.2 布局管理
5.2.1 定位器(Positioners)
5.2.2 基于锚(anchors)的布局
5.2.3 Layouts
5.3 事件处理
5.3.1 MouseArea
5.3.2 鼠标事件(MouseEvent)和滚轮事件(WheelEvent)
5.3.3 拖放事件(DragEvent)
5.3.4 键盘事件(KeyEvent)和焦点作用域(FocusScope)
5.3.5 定时器(Timer)
5.4 使用Loader动态加载组件
5.4.1 Loader的大小与行为
5.4.2 从加载的项目中接收信号
5.4.3 焦点和键盘事件
5.5 小结
第6章 Qt Quick控件和对话框
6.1 构建第一个示例
6.2 ApplicationWindow应用程序窗口
6.3 Window
6.4 按钮类控件
6.4.1 ExclusiveGroup
6.4.2 Button
6.4.3 CheckBox
6.4.4 RadioButton
6.4.5 Switch
6.5 数据选择类控件
6.5.1 ComboBox
6.5.2 Slider
6.5.3 SpinBox
6.6 文本类控件
6.6.1 TextField
6.6.2 TextArea
6.7 其他控件
6.7.1 Label
6.7.2 GroupBox
6.7.3 BusyIndicator
6.7.4 ProgressBar
6.8 导航类视图
6.8.1 ScrollView
6.8.2 SplitView
6.8.3 StackView
6.8.4 TabView
6.8.5 TableView
6.9 标准对话框
6.9.1 ColorDialog
6.9.2 FileDialog
6.9.3 FontDialog
6.9.4 MessageDialog
6.10 定义控件样式
6.11 小结
第7章 图形动画基础
7.1 颜色、渐变和调色板
7.1.1 颜色(color)
7.1.2 渐变(Gradient)
7.1.3 系统调色板(SystemPalette)
7.2 图片、边界图片和动态图片
7.2.1 图片(Image)
7.2.2 边界图片(BorderImage)
7.2.3 动态图片(AnimatedImage)
7.3 缩放、旋转和平移变换
7.3.1 使用属性实现简单变换
7.3.2 使用Transform实现高级变换
7.4 状态(State)
7.4.1 创建状态
7.4.2 默认状态和when属性
7.5 动画和过渡
7.5.1 触发动画
7.5.2 控制动画的执行
7.5.3 精灵动画(Sprite Animations)
7.5.4 共享动画实例
7.6 Flickable和Flipable
7.6.1 弹动效果(Flickable)
7.6.2 翻转效果(Flipable)
7.7 小结
第8章 图形效果
8.1 混合效果(Blend)
8.2 颜色效果(Color)
8.3 渐变效果(Gradient)
8.3.1 锥形渐变(ConicalGradient)
8.3.2 线性渐变(LinearGradient)
8.3.3 辐射渐变(RadialGradient)
8.4 变形效果(Distortion)
8.5 阴影效果(Drop Shadow)
8.5.1 投影(DropShadow)
8.5.2 内阴影(InnerShadow)
8.6 模糊效果(Blur)
8.6.1 快速模糊(FastBlur)
8.6.2 高斯模糊(GaussianBlur)
8.6.3 递归模糊(RecursiveBlur)
8.6.4 遮罩模糊(MaskedBlur)
8.7 动感模糊效果(Motion Blur)
8.7.1 方向模糊(DirectionalBlur)
8.7.2 径向模糊(RadialBlur)
8.7.3 缩放模糊(ZoomBlur)
8.8 发光效果(Glow)
8.8.1 发光(Glow)
8.8.2 矩形发光(RectangularGlow)
8.9 遮罩效果(Mask)
8.9.1 不透明遮罩(OpacityMask)
8.9.2 阀值遮罩(ThresholdMask)
8.10 小结
第9章 粒子系统
9.1 ParticleSystem
9.2 发射器(Emitter)
9.3 渲染器(ParticlePainters)
9.4 TrailEmitter
9.5 粒子组
9.6 随机参数
9.7 影响器(Affector)
9.8 小结
第10章 Canvas基础
10.1 Canvas的使用
10.2 绘制操作
10.2.1 绘制参数设置
10.2.2 绘制矩形
10.2.3 状态的保存与恢复
10.2.4 绘制文本
10.2.5 绘制路径
10.3 渐变填充
10.3.1 线性渐变
10.3.2 辐射渐变
10.3.3 锥形渐变
10.4 阴影
10.5 使用图像
10.6 坐标变换
10.6.1 平移
10.6.2 缩放
10.6.3 旋转
10.6.4 扭曲
10.6.5 transform()函数总结
10.7 小结
第11章 模型和视图
11.1 模型/视图架构简介
11.2 数据模型
11.2.1 ListModel
11.2.2 WorkerScript
11.2.3 ObjectModel
11.2.4 DelegateModel
11.2.5 Package
11.2.6 XmlListModel
11.2.7 LocalStorage
11.2.8 使用C++扩展QML模型
11.3 视图类型
11.3.1 ListView
11.3.2 GridView
11.3.3 视图过渡
11.3.4 PathView
11.3.5 WebView
11.4 调整性能
11.5 小结
第12章 多媒体应用
12.1 多媒体模块介绍
12.2 播放音频
12.2.1 播放压缩音频
12.2.2 播放未压缩音频
12.3 播放视频
12.3.1 使用Video播放视频文件
12.3.2 对视频使用图形效果
12.4 媒体播放器(MediaPlayer)
12.4.1 播放音视频
12.4.2 使用Windows平台附加功能
12.5 小结
第13章 QML与C++的集成
13.1 QML运行时的C++类
13.1.1 QQmlEngine
13.1.2 QQmlContext
13.1.3 QQmlComponent
13.1.4 QQmlExpression
13.2 在QML中使用C++特性
13.2.1 数据类型处理和拥有权
13.2.2 数据类型的转换
13.2.3 使用C++属性
13.2.4 使用函数和槽
13.2.5 使用信号
13.3 注册QML类型
13.3.1 注册可实例化对象类型
13.3.2 注册不可实例化对象类型
13.3.3 注册单例类型
13.3.4 类型的修订和版本
13.4 定义QML特定类型和属性
13.4.1 提供附加对象注解数据
13.4.2 属性修饰符类型
13.4.3 指定QML对象类型的默认属性
13.4.4 接收对象初始化通知
13.5 在C++中使用QML对象
13.5.1 使用C++加载QML对象
13.5.2 使用对象名字访问加载的QML对象
13.5.3 使用C++访问QML对象成员
13.6 小结
第14章 使用Qt Quick设计器
14.1 常用操作介绍
14.1.1 管理项目层次
14.1.2 QML类型库
14.1.3 指定项目属性
14.1.4 添加状态
14.1.5 在画布上操作QML类型
14.2 使用设计器编辑QML文档
14.2.1 创建项目
14.2.2 创建主视图
14.2.3 添加视图
14.2.4 为视图添加动画
14.3 小结
附录A Qt版本介绍
附录B Qt 5中C++API更改
附录C QML常用术语
参考文献