目录
第 1 章 使用 Qt Designer 定制观感 1
1.1 技术要求 1
1.2 在 Qt Designer 中使用样式表 1
1.3 定制基本样式表 5
1.4 使用样式表创建登录界面 9
1.5 在样式表中使用资源 16
1.6 定制属性和子组件 20
1.7 在 Qt 建模语言中进行样式设计 24
1.8 将 QML 对象指针暴露给 C++ 34
第 2 章 事件处理—信号与槽 39
2.1 技术要求 39
2.2 信号和槽的简要介绍 39
2.3 使用信号和槽处理 UI 事件 45
2.4 简化异步编程 53
2.5 函数回调 57
第 3 章 状态和动画 61
3.1 技术要求 61
3.2 Qt 中的属性动画 61
3.3 使用缓动曲线控制属性动画 64
3.4 创建动画组 66
3.5 创建嵌套动画组 69
3.6 Qt 6 中的状态机 72
3.7 QML 中的状态、转换和动画 75
3.8 使用动画器制作组件属性动画 80
3.9 精灵动画 82
第 4 章 QPainter 与 2D 图形 87
4.1 技术要求 87
4.2 在屏幕上绘制基本形状 87
4.3 将形状导出到可缩放矢量图形文件 91
4.4 坐标变换 97
4.5 在屏幕上显示图像 101
4.6 对图形应用图像效果 106
4.7 创建基本的绘画程序 109
4.8 在 QML 中渲染 2D 画布 115
第 5 章 OpenGL 实现 119
5.1 技术要求 119
5.2 在 Qt 中配置 OpenGL 119
5.3 Hello World! 122
5.4 渲染 2D 形状 127
5.5 渲染 3D 形状 130
5.6 OpenGL 中的纹理映射 135
5.7 OpenGL 中的基本光照 138
5.8 使用键盘控制移动物体 142
5.9 QML 中的 Qt Quick 3D 143
第 6 章 从 Qt 5 过渡到 Qt 6 149
6.1 技术要求 149
6.2 C++类的变化 149
6.3 使用 Clazy 检查 Clang 和 C++ 153
6.4 QML 类型的变更 155
第 7 章 使用网络和管理大型文档 161
7.1 技术要求 161
7.2 创建 TCP 服务器 161
7.3 创建 TCP 客户端 167
7.4 使用 FTP 上传和下载文件 172
第 8 章 线程基础—异步编程 187
8.1 技术要求 187
8.2 使用线程 187
8.3 QObject 和 QThread 190
8.4 数据保护和线程间数据共享 194
8.5 使用 QRunnable 进程 198
第 9 章 使用 Qt 6 构建触摸屏应用程序 201
9.1 技术要求 201
9.2 为移动应用设置 Qt 201
9.3 使用 QML 设计基础用户界面 207
9.4 触摸事件 214
9.5 QML 中的动画 220
9.6 使用模型/视图显示信息 226
9.7 集成 QML 和 C++ 232
第 10 章 简化 JSON 解析 237
10.1 技术要求 237
10.2 JSON 格式概览 237
10.3 从文本文件处理 JSON 数据 239
10.4 将 JSON 数据写入文本文件 243
10.5 使用谷歌地理编码 API 246
第 11 章 转换库 251
11.1 技术要求 251
11.2 数据转换 251
11.3 图像转换 257
11.4 视频转换 261
11.5 货币转换 266
第 12 章 使用 SQL 驱动和 Qt 访问数据库 273
12.1 技术要求 273
12.2 设置数据库 273
12.3 连接到数据库 279
12.4 编写基本 SQL 查询 282
12.5 使用 Qt 创建登录界面 287
12.6 在模型视图中显示数据库中的信息 292
12.7 高级 SQL 查询 298
第 13 章 使用 Qt WebEngine 开发 Web 应用程序 307
13.1 技术要求 307
13.2 介绍 Qt WebEngine 307
13.3 使用 webview 和 Web 设置 314
13.4 在项目中嵌入 Google 地图 319
13.5 从 JavaScript 调用 C++函数 324
13.6 从 C++调用 JavaScript 函数 330
第 14 章 性能优化 337
14.1 技术要求 337
14.2 优化表单和 C++ 337
14.3 分析和优化 QML 343
14.4 渲染和动画 348