项目地址: QML-Minimal-Demos
一个全面的 QML (Qt Quick) 演示工程合集,包括基本组件、布局、动画、图表、粒子系统等各个方面。每个示例都是独立可运行的最小案例,边学边扩展。
为什么做这个专栏
Qt 官方的 QML 资料比较单薄,初学时容易摸不着方向。
从 2025 年起,我利用业余时间借助 DeepSeek 生成演示代码,再手动调试修 bug,一路积累——可以说,我就是在修 bug 的过程中学会 QML 的。
原始 demo 在 CSDN 上创作,现在将所有的 demo 进行再次迭代优化,才有了这个专栏。
环境说明
| 项目 | 说明 |
|---|---|
| 最低 Qt 版本 | 6.5 |
| 开发环境 | Win11 + Qt 6.8.2 / Qt 6.11.1 / 即将推出的 Qt 6.12 |
| 注意事项 | Qt 6 程序无法在 Win7 上运行,Qt 6.12 之后的版本会放弃 Win10 |
适合谁来研究
1. 对 QML 感兴趣的开发者
这个合集覆盖了 QML 的绝大部分常用组件和模式——从最基础的 Hello World 到粒子系统、图表、表格,每个示例都是独立可运行的最小案例。比起翻 Qt 官方文档,直接看代码跑效果要直观得多。
2. 用 AI 生成 QML 代码但老出错的人
AI 生成的 QML 代码经常有两类问题:
- 用了不存在的属性或信号:比如把
AnimatedSprite.Infinite写成Animation.Infinite - 组件嵌套关系不对:比如把动画组件放错了层级
这个合集里的每个示例都经过实际编译验证,可以作为"正确答案"来对照。遇到 AI 给的代码跑不通,来这里找个类似的看看差距在哪。
3. QML 入门学习者
每个示例的代码量都很小(通常 50~200 行),专注于演示一个知识点。没有复杂的项目结构干扰,适合从 qml_hello 开始,按分类逐步深入。
示例分类
| 分类 | 内容 |
|---|---|
| 基础入门 | Hello World、基础组件、属性绑定 |
| 动画效果 | 属性动画、状态机、过渡动画 |
| 布局与定位 | Anchor、Row、Column、Grid、Layout |
| 交互控件 | 按钮、输入框、滑块、下拉框 |
| 自定义组件 | 组件化开发、信号槽、属性暴露 |
| 图表与数据 | ChartView、Model/View |
| 粒子系统 | Particle、Emitter、Affector |
| 综合实战 | 登录界面、图片查看器、播放器 |
| 扩展中 | 包含Qt全新的组件、vibe coding作品等 |
如何使用
快速开始
项目地址: QML-Minimal-Demos
- 下载或者克隆项目到本地
- 用 Qt Creator 打开目标示例的
CMakeLists.txt文件 - 点击运行即可看到效果
学习建议
- 入门阶段:从
qml_hello开始了解QML,掌握基本语法 - 进阶阶段:按分类(组件、布局、动画等)逐个研究,动手修改参数观察变化
- 实战阶段:参考综合示例,搭建自己的项目
参与贡献
如果你在使用过程中发现了 bug,或者有更好的实现方式,欢迎:
- 提交 Issue 反馈问题
- 分享你的学习心得