QML 基础组件专栏目录(V1)

本专栏是一个 QML (Qt Quick) 演示工程合集,包括了基础组件、动画、布局、图表、粒子系统等各个方面。后面计划进行版本迭代,修复一些bug,统一视觉效果,新增一些未补充的类型。

Qt 官方的 QML 资料比较单薄,初学时容易摸不着方向。从 2025 年起,我利用业余时间借助 DeepSeek 生成演示代码,再手动调试修 bug,一路积累到现在这个规模------可以说,我就是在修 bug 的过程中学会 QML 的。

每个示例的代码量都很小(通常 50~200 行),专注于演示一个知识点。没有复杂的项目结构干扰,适合从布局 & 基础示例开始,按分类逐步深入。

  • 最低 Qt 版本:6.5
  • 已验证环境:Win11 + Qt 6.8 / Qt 6.11
  • 注意:Qt 6 程序无法在 Win7 上运行

QML Demo Launcher(示例管理器)

做 QML 开发的人,时间一长,手里难免攒下一大堆零散的小示例:动画的、控件的、布局的、图表的......每个都是独立的文件夹,独立的 CMakeLists.txt,独立的构建产物。问题是:

  • 找起来费劲 ------ 想看一个滑块效果,得在几十个 qml_* 文件夹里挨个翻。
  • 跑起来麻烦 ------ 每次都要在 Qt Creator 里切换构建目标,或者手动找到 build 目录去双击 exe。
  • 没有全貌 ------ 到底有哪些示例?哪些看过、哪些没看过?完全靠记忆。

所以我做了一个 QML Demo Launcher ------ 一个带界面的管理器,把所有子 Demo 按类别组织起来,点击卡片直接启动。


粒子系统示例

目录:qml_particlesystem/

粒子系统(Particle System)是 QML 中用于模拟大量相似元素(火焰、烟雾、雪花、星河等)的高效方案。下面按「核心概念 → 发射形状 → 运动方向 → 随机性 → 影响器 → 尾迹 → 综合」的顺序组织,方便由浅入深地查阅。

基本概念

示例 说明
系统概述 展示 ParticleSystem、Emitter、ImageParticle 三者的协作骨架
系统控制 生命周期管理,支持 start / stop / pause / resume / reset
发射器方法 Emitter 的两种瞬时发射:burst() 一次性发射、pulse() 持续发射指定时长
渲染器对比 ImageParticle 走图像渲染,ItemParticle 走 QML 组件渲染,各有性能与灵活性取舍
ItemParticle 方法 take() 获取粒子控制权、give() 归还、freeze() 冻结粒子状态
ImageParticle 属性 粒子图像的颜色、透明度、旋转等视觉属性配置
粒子组管理 ParticleGroup 定义粒子状态与生命周期,支持状态间自动转换

发射区域

控制粒子从什么形状的区域里喷出:

示例 说明
矩形区域 RectangleShape 在矩形范围内随机发射
椭圆区域 EllipseShape 在椭圆范围内发射,适合圆形特效
线性区域 LineShape 沿直线发射,形成线状粒子流
图像遮罩 MaskShape 按图像灰度决定发射密度,实现任意形状
移动发射区域 发射区域随时间移动,产生动态粒子轨迹

扩散方向

决定粒子飞出去的角度与轨迹:

示例 说明
水平扩散 AngleDirection 通过角度与扩散角控制发射方向
抛物线轨迹 PointDirection 设置 x/y 分量速度,形成抛物线运动
锥形扩散 PointDirection 配合角度变化,形成锥形扩散
目标扩散 TargetDirection 让粒子朝目标点或目标 Item 发射
组合方向 CumulativeDirection 叠加多个方向,产生复杂轨迹

粒子随机性

让每一颗粒子都不太一样,画面更自然:

示例 说明
大小随机性 sizeVariation 控制粒子尺寸变化范围
生命周期随机性 lifeSpanVariation 控制存活时间变化
颜色随机性 colorVariation 控制颜色偏移程度
位置随机性 发射点位置随机偏移,增加分布自然感
角度随机性 angleVariation 控制发射角度变化范围
速度随机性 magnitudeVariation 控制发射速度变化范围

粒子影响器

在粒子飞行途中施加力或改变状态:

示例 说明
Age 控制 提前终止生命周期,用于强制消亡或状态转换
Attractor 吸引器 将粒子吸引到指定点,支持多种衰减模式
Friction 摩擦力 施加阻力,使粒子逐渐减速直至停止
Gravity 重力 添加恒定方向的力,模拟下落或飘升
Wander 随机游走 让粒子随机漂移,增加运动自然感
Turbulence 湍流 基于噪声图像产生流体扰动效果

尾迹发射器

示例 说明
运动轨迹示例 TrailEmitter 跟随粒子发射新粒子,形成拖尾
扩散粒子示例 TrailEmitter 发射扩散粒子,增强轨迹视觉表现

综合示例

把前面的能力组合起来,做完整效果:

示例 说明
粒子组切换 运行时动态切换发射的粒子组,展示组间状态管理
雪花飘落 模拟自然飘落,综合运用方向与随机性
爆炸效果 burst 配合重力与摩擦,实现爆炸动画
银河背景 多层旋转粒子构成星系旋臂
烟花效果 分段发射配合颜色渐变,模拟绽放与消散

基础组件

qml_hello/ - Hello World 入门

最简单的 QML 程序,展示 Hello World 文字动画:文字从顶部弹跳落下,同时颜色从白色渐变为深色。适合 QML 初学者了解基本的动画和属性绑定。

qml_signals/ - 信号交互

示例 说明
QML 直接绑定 最基础且性能最优的交互方式,适用于对象内部或具有明确父子层级关系的组件
JavaScript 动态连接 适用于逻辑较为复杂、需要在运行时根据条件建立或切换信号连接的场景
QML 跨文件信号槽通信 实现组件化设计的关键,通过中立的父组件作为"调度员"来连接两个独立的子组件
C++ 信号发送给 QML 前后端分离架构中的基本做法,利用 Connections 元素监听后端业务状态

qml_layout/ - 布局管理

展示 QML 中主要的布局方式:Row & RowLayout、Column & ColumnLayout、Grid & GridLayout、StackLayout、Flow,让用户能够直观地对比它们的布局效果和差异。

qml_container/ - 容器组件

展示 QML 中主要的容器组件:Pane、Frame、GroupBox、ScrollView、Page。所有容器以卡片形式展示,方便直观对比外观和功能差异。

qml_repeater/ - Repeater 中模型的 5 种定义方式

展示 Repeater 组件的 5 种模型定义方式:

示例 说明
StringList 模型 使用字符串列表作为数据源
ListModel 模型 使用 QML ListModel 组件
JS 数组模型 使用 JavaScript 数组
C++ 模型 使用自定义 C++ 数据模型
整数模型 使用整数作为重复次数

qml_loader/ - 加载器

示例 说明
从文件加载组件 通过 source 属性加载外部 QML 文件
加载 Component 组件 通过 sourceComponent 属性加载内联定义的 Component
加载状态监控 监控 Loader 的 status 变化,处理加载成功、失败等状态
动态标签页 模拟多页面切换,动态加载不同页面内容
动态创建控件 使用 Qt.createComponent 和 createObject 在运行时创建多个子控件
延迟加载 配合 Timer 和 BusyIndicator 实现延迟加载效果
切换组件 通过 Switch 在两个 Component 之间切换
属性传递 通过输入文字和选择颜色,动态修改 Loader 加载的组件属性

qml_windowflags/ - 窗口标志

展示 8 种不同类型的窗口标志效果,通过主界面的按钮可以打开对应的演示窗口。


用户界面组件

qml_button_collection/ - 按钮组件合集

包含 10 个示例:

示例 说明
普通按钮(Button) 支持文本、图标显示,具有正常、悬停、按下、禁用等多种状态
工具按钮(ToolButton) 专为工具栏设计,通常只显示图标,支持弹出菜单功能
圆形按钮(RoundButton) 具有圆形外观,常用于需要突出显示的快捷操作
延迟按钮(DelayButton) 需要长按一段时间后才会触发,常用于需要用户确认的重要操作
开关(Switch) 模拟物理开关,适用于布尔状态切换,如 Wi-Fi、蓝牙等设置
复选框(CheckBox) 用于多选场景,支持父子节点关联,可通过 ButtonGroup 管理状态
单选按钮(RadioButton) 用于单选场景,同一组内的选项互斥
标签按钮(TabButton) 通常在 TabBar 中使用,作为选项标签
委托按钮(ItemDelegate) 通常在滚动视图的委托组件中使用
自定义按钮(CustomButton) 定制按钮样式,能够设置文本、描述以及背景色,定制了点击效果

qml_textfield/ - 文本输入框

示例 说明
TextField 基础示例 基础示例、输入限制
TextField 校验 年龄校验、邮箱格式校验、手机号校验、掩码与日期校验
TextField 样式 自定义文本框、带图标的文本框、带删除的文本框、主题切换
TextField 应用 动态关联、表单提交

2025-11-25 优化:

  • 优化整体结构,新增导航标签,方便查看所有示例

2025-12-07 新增:

  • IP 地址验证器:支持 IPv4 和 IPv6 地址格式验证
  • 身份证号验证器:支持中国大陆身份证号格式验证

qml_textarea/ - 多行文本区域

演示多行文本输入组件,包含 TextArea 基础用法、样式以及应用。

2025-11-23 优化:

  • 优化整体结构,新增导航标签,方便查看所有示例
  • 优化【基本示例】,新增文本边框,防止界面在没有光标输入时一片空白
  • 优化【富文本】,增加上下对照,展示 PlainText 与 RichText 的差异
  • 优化【Markdown 编辑器】,展示文本与 Markdown 对照,解决滚动同步失败的 bug
  • 新增【保持滚动】,使用场景较多,可以滚动展示输出日志

qml_progressbar/ - 进度条

示例 说明
基础进度条 展示 ProgressBar 最基本的使用方式
动画效果进度条 进度值变化时带有平滑动画效果,支持自定义背景和内容项
自定义样式进度条 完全自定义的进度条,带有百分比显示,使用 Rectangle 绘制、百分比颜色自动变化
Material 风格进度条 基于 Material 设计风格,支持不确定模式、自定义高度和颜色
带遮罩动画的进度条 带遮罩动画的自定义进度条,支持不确定模式、带有流动效果的遮罩
环形进度条 基于 Shape 实现,支持不确定模式、显示具体的进度百分比

qml_slider/ - 滑块组件

示例 说明
基础滑块 展示 Slider 最基本的使用方式,包括水平/垂直方向切换和当前值显示
自定义样式 1 自定义手柄样式,创建带有双层圆形设计的滑块
自定义样式 2 带有刻度标记和数值标签的滑块实现,支持自动对齐到刻度值
自定义样式 3 带有进度显示和颜色变化的自定义滑块
音量控制滑块 实现了一个现代化的音频音量控制滑块,带有静音切换功能
视频进度控制滑块 实现了一个功能完整的视频进度条,带有播放控制功能

qml_dial/ - 旋钮组件

展示不同风格、功能和交互方式的 Dial 组件实现。Dial 是 QML 中的圆形旋钮控件,常用于音量控制、亮度调节、参数设置等场景。

qml_tumbler/ - 滚轮选择器

示例 说明
基础 Tumbler 展示 Tumbler 最基本的使用方式,用于时间选择
Tumbler 样式 1 自定义样式,当前选中项为红色,透明度随位移变化
Tumbler 样式 2 带绿色高亮背景的滚筒,用于尺寸选择
Tumbler 样式 3 深色主题,带 3D 旋转和缩放效果的滚筒
日期选择器 1 简单的日期选择,包含月份、日期和年份
日期选择器 2 高级日期选择器,根据年月动态更新天数
颜色选择器 每个选项显示不同颜色的滚筒

2026-04-24 补充 ------ 水平滚动选择器:

qml_spinbox/ - 数字输入框

示例 说明
基础 SpinBox 示例 展示 SpinBox 最基本的使用方式,支持直接编辑输入
自定义步长 SpinBox 支持通过下拉框改变步长,适合角度等数值输入
自定义 SpinBox(缩放) 完全自定义外观,包括圆角、阴影、动画效果,在数值增加/减少时支持数值缩放效果
自定义 SpinBox(滚动) 基于缩放示例之上,变更了数值组件与动画效果,支持数值滚动效果
自定义 SpinBox(1) 简约风格,使用矩形实现加减号,支持焦点状态显示
自定义 SpinBox(2) Material 设计风格,带有涟漪效果和 Material 设计元素

qml_combobox/ - 下拉选择框

示例 说明
基础用法 展示 ComboBox 最基本的字符串列表展示功能
ListModel 动态模型 使用 ListModel 作为数据源,实现更结构化的数据展示
自定义样式 通过重写背景、内容项、指示器等元素,创建完全自定义的外观
样式系统 展示 Material Design 风格的 ComboBox
可编辑模式 支持用户输入和自定义选项添加
动态更新 实时更新 ComboBox 的数据源,响应用户的交互操作
分组 ComboBox 实现带有分组标题的下拉列表,提升选项的可读性
多列 ComboBox 在一个下拉项中展示多个数据字段,适用于信息密集的场景
大型列表 针对包含数千个选项的大型数据集进行加载性能优化
自定义显示文本 灵活控制 ComboBox 的显示内容,支持格式化输出
部分选项禁用 实现部分选项不可选择的功能

qml_busyindicator/ - 加载指示器

示例 说明
BusyIndicator 状态控制 通过按钮切换运行状态,展示最基本的控制方式
自定义样式 - 旋转圆环 基于 Rectangle 和 RotationAnimation 的简单实现
自定义样式 - 动态弧线 利用 Shape 和 PathAngleArc 的高级动画效果,来自 Qt 官方示例
自定义样式 - 现代简约 使用 BusyIndicatorImpl 的简单实现

qml_tooltip/ - 工具提示

演示工具提示的使用,包括自定义提示内容。


列表和表格组件

qml_listview/ - 列表视图

示例 说明
ListView 样式 头像、状态徽标、section 分组标题
ListView 数据交互 输入框 + 按钮驱动 ListModel 增删
可拖拽列表 按住拖动列表项完成重新排序
C++ 模型联系人列表 C++ 后端模型 + 搜索过滤 + 增删改
ProxyModel 大数据列表 10 万条随机数据 + 实时关键词过滤

qml_tableview/ - 表格视图

示例 说明
基础表格 使用 TableModel 展示静态数据
自定义样式表格 自定义表头、交替行颜色、悬停高亮和行选中效果
可排序表格 点击表头列可按升序/降序排序,支持数值与字符串两种排序方式
可编辑表格 点击单元格原位弹出输入框,支持编辑价格和库存字段
SQLite 表格(增删改查) 对接 QSqlTableModel,实现完整的数据库增删改查操作

qml_treeview/ - 树形视图

演示树形结构的数据展示,包括展开/折叠功能。

qml_delegatechoice/ - 委托选择

演示如何根据数据选择不同的委托,用于条件性显示不同组件。

qml_itemdelegate/ - 项目委托

展示 QML ItemDelegate 组件的多种实现方式:

示例 说明
ItemDelegate 基础列表项委托,支持点击选中
CheckDelegate 带复选框的列表项委托
RadioDelegate 带单选按钮的列表项委托
SwitchDelegate 带开关的列表项委托
SwipeDelegate (left/right) 支持左右滑动的列表项委托
SwipeDelegate (behind) 支持背景滑动的列表项委托
TreeViewDelegate 树形视图的委托组件

导航和布局组件

qml_drawer/ - 侧滑面板

QML Drawer 是一种侧边滑动面板组件,常用于显示导航菜单、设置选项或临时功能面板。包括:左侧导航抽屉、右侧设置面板、顶部消息通知和底部功能面板等。

qml_tabbar/ - 标签页

示例 说明
TabBar 基础用法 展示 TabBar 最基本的用法,点击切换显示当前索引
TabBar 位置 使用 Page 容器的 header/footer 设置 TabBar 位置
TabBar 与 StackLayout 标准的标签页实现,点击标签切换内容页
自定义 TabButton 自定义按钮样式,圆角背景 + 颜色过渡动画
动态添加/删除标签页 运行时动态增删标签,模拟浏览器标签效果
TabBar 与 SwipeView 双向绑定,支持点击和滑动两种切换方式

qml_stackview/ - 堆栈视图

示例 说明
基本操作 展示 StackView 最核心的 Push、Pop、Replace 操作
批量操作 批量 Push 多个页面、批量 Pop、清空栈等高级操作
Push 对象 演示 Item、Component、URL 三种不同的页面加载方式
TabBar 联动 TabBar 与 StackView 配合实现标签页导航
过渡效果 自定义页面切换的淡入淡出动画效果(来自 Qt 官方示例)
堆叠效果 多层页面的视觉堆叠展示,带有偏移和透明度效果(来自 Qt 官方示例)

qml_swipeview/ - 滑动视图

示例 说明
SwipeView 与指示器 基础的 SwipeView 用法,配合 PageIndicator 显示当前页面位置
自定义指示器 自定义 PageIndicator 的样式,添加数字标签和点击跳转功能
SwipeView 与 TabBar TabBar 与 SwipeView 双向绑定,点击标签或滑动页面均可切换
SwipeView 与 Loader 使用 Loader 延迟加载页面内容,配合日志展示生命周期
图片浏览器 完整的图片浏览器应用,支持自动轮播、手动切换和指示器导航

qml_page/ - 页面组件

示例 说明
Page 基础用法 展示 header 和 footer 的基本配置
Page 与 SwipeView 联动 滑动切换页面,配合 PageIndicator
Page 与 StackLayout 结合 按钮切换页面内容
Page 嵌套结构 外层 Page 嵌套内层 Page

qml_navigation_layout/ - 导航布局

示例 说明
侧边导航栏 左侧固定导航 + 右侧内容区,适合桌面应用
抽屉式导航 点击按钮展开侧边菜单,适合移动端或空间受限场景
顶部导航栏 StackView 实现页面切换动画,适合向导式流程
底部导航栏 图标+文字的底部 Tab,适合移动应用主导航

qml_scrollbar/ - 滚动条

示例 说明
ListView 滚动条 内置完善的滚动条支持,适合展示大量同质化的列表数据
ScrollView 容器 自动处理内容测量和滚动条管理,是最简单的滚动解决方案
Flickable 滚动条 支持触摸滚动、弹性边界和惯性滑动,特别适合移动设备
ScrollIndicator 指示器 轻量级的滚动位置指示器,常与 Flickable 搭配使用
自定义 ScrollBar 自定义滚动条的背景、滑块等外观属性
Rectangle 滚动条 使用 Rectangle 和 ScrollBar 实现滚动功能,展示基本工作原理(来自 Qt 官方)

qml_splitview/ - 分割视图

示例 说明
基础分割视图 2 分视图,支持水平和垂直方向切换
自定义手柄 渐变色手柄,带有中心指示器
嵌套分割视图 3 分视图,支持嵌套滑动
状态持久化 保存和恢复分割视图布局状态

qml_flickable_flipable/ - 轻弹和翻转

示例 说明
Flickable 基础用法 展示 Flickable 最基本的滚动列表功能
Flickable 边界行为 对比两种边界模式的视觉效果
Flipable 翻转卡片 扑克牌正反面翻转动画
Flipable 登录设置 登录界面与设置面板的翻转切换

动画和效果

qml_animation/ - 动画系统

示例 说明
属性动画 使用 PropertyAnimation 直接作用于元素的 x 属性
预定义动画 使用 NumberAnimation 实现旋转动画
行为动画 Behavior 自动为属性变化添加弹性动画
动画控制 演示动画的启动、暂停、恢复、停止、重启操作
顺序动画 SequentialAnimation 按顺序依次执行三个旋转动画
并行动画 ParallelAnimation 同时执行三个旋转动画

qml_state/ - 状态管理

示例 说明
状态切换 通过按钮在两个状态之间切换,展示 State 的基本用法
多属性更改 一个状态同时修改两个矩形的颜色和圆角
When 条件状态 复选框选中时自动激活状态,取消时自动恢复
状态扩展 扩展状态继承基础状态的属性,实现状态复用

qml_animatedsprite/ - 动画精灵

示例 说明
AnimatedSprite 基础用法 使用精灵图(Sprite Sheet)实现循环播放动画
Image + Timer 实现帧动画 使用独立图片文件,通过 Timer 定时切换实现动画
Image + Timer 多动画切换 通过下拉框动态切换攻击、行走、奔跑等不同动画
AnimatedSprite 单次播放 播放一次动画后自动停止,适合技能特效等场景

qml_graphical_effects/ - 图形效果

整合了 Qt 官方示例:

示例 说明
色阶调整 LevelAdjust 效果,通过滑块实时调整 Gamma X/Y/Z 参数
伽马调整 GammaAdjust 效果,通过滑块控制伽马值,调整整体亮度曲线
置换效果 Displace 效果,通过置换贴图对图像进行扭曲变形
遮罩效果 OpacityMask(不透明度遮罩)和 ThresholdMask(阈值遮罩)
模糊效果 7 种模糊效果 ------ DirectionalBlur、GaussianBlur、FastBlur、RecursiveBlur、MaskedBlur、RadialBlur、ZoomBlur
阴影效果 DropShadow(投影阴影)和 InnerShadow(内阴影)
发光矩形 RectangularGlow 为矩形添加发光效果
发光效果 Glow 为图像添加发光效果
亮度对比度 BrightnessContrast 效果,实时调整亮度和对比度
颜色效果 Colorize、HueSaturation、ColorOverlay、Desaturate 四种颜色调整效果
渐变效果 RadialGradient、ConicalGradient、LinearGradient 四种渐变效果
混合效果 Blend 效果混合两张图像,支持 22 种混合模式

qml_blur/ - 模糊效果

示例 说明
FastBlur 背景模糊 使用 FastBlur 对背景图片进行快速模糊处理
Layer 模糊效果 通过 layer.enabled 和 layer.effect 组合实现模糊
GaussianBlur 高斯模糊 高质量高斯模糊,支持采样数控制
矩形区域模糊 局部区域模糊,实现类似毛玻璃的效果

图像和媒体

qml_image/ - 图像组件

示例 说明
图片缩放 通过 Slider 控制图片的缩放比例
图片平移 鼠标拖拽实现图片平移效果
图片旋转 通过 Slider 控制图片旋转角度
网络图片加载 异步加载网络图片,显示加载状态
图片填充模式 演示六种不同的 fillMode 效果
图片镜像 水平和垂直方向的镜像切换
图片 Mipmap 对比开启/关闭 Mipmap 的显示效果
动态图播放 播放 GIF 动图,支持暂停控制

qml_borderimage/ - 边框图像

示例 说明
BorderImage 基础用法 展示 BorderImage 的基本使用,支持点击交互
九宫格辅助线 使用虚线可视化展示九宫格边框区域
平铺模式对比 Stretch、Repeat、Round 三种平铺模式的效果对比
边框尺寸对比 不同 border 值对拉伸效果的影响
镜像效果 mirror 属性实现水平翻转
动态切换图片源 运行时切换图片源,显示加载状态

qml_animatedimage/ - 动画图像

示例 说明
播放 GIF 展示 AnimatedImage 最基本的用法,自动播放 GIF 动画
播放/暂停控制 通过按钮控制动画的播放和暂停状态
帧进度指示器 实时显示当前帧和总帧数,带进度条可视化
播放速度控制 使用滑块动态调整动画播放速度

日期和时间组件

qml_calendar/ - 日历组件

示例 说明
MonthGrid 基础用法 展示当月日历网格,当天日期加粗显示
DayOfWeekRow 星期标题 自定义星期标题,周末显示为红色
CalendarModel 月份切换 左右滑动切换月份,支持整年浏览
日历导航 完整的日历组件,支持月份导航、周数显示、日期点击

qml_date/ - 日期组件

示例 说明
日期格式化 使用系统内置 Locale 格式,展示长/短风格的日期、时间显示效果
多地区日期显示 适配中文、英文、德文、日文、法文等多国语言的日期格式
日期解析 支持将自定义格式的字符串转换为 Date 对象,包含输入有效性校验
自定义日期格式 通过格式字符串实现任意风格的日期时间输出,支持星期、上下午等显示
时间戳转换 实现日期对象与毫秒/秒级时间戳的双向互相转换
时间选择器 基于 Tumbler 实现的 24 小时制滚动选择器,支持小时、分钟选择
日期时间选择器 完整的年/月/日/时/分选择组件,自动适配不同月份天数、闰年 2 月
模拟时钟 使用 Canvas 2D 绘制的动态时钟,包含刻度、数字标识、时分秒指针,每秒实时更新

对话框和弹出组件

qml_dialog/ - 对话框

示例 说明
消息对话框 基础消息提示和自定义表单对话框
颜色对话框 点击色块调出系统颜色选择器
文件对话框 四种文件操作模式演示
文件夹对话框 目录浏览和文件列表展示
字体对话框 字体选择和实时预览

qml_popup/ - 弹出窗口

示例 说明
Simple Popup 基础弹出框,显示简单内容
Modal Popup 模态弹出框,阻止背景交互
Custom Popup 自定义样式的弹出框
Animated Popup 带动画效果的弹出框

qml_menu/ - 菜单组件

示例 说明
鼠标右键菜单 鼠标右键点击时显示的上下文菜单
动态菜单 使用 Instantiator 动态加载菜单项
顶部菜单栏 应用程序顶部的菜单栏
支持快捷键的菜单 带有键盘快捷键的菜单项
可选项菜单 带有单选功能的菜单项
主题菜单栏 自定义样式的主题菜单

qml_messagebox/ - 消息框

演示自定义消息框,包括:信息、警告、错误、成功、问题等类型。


颜色和样式

qml_color/ - 颜色组件

示例 说明
命名颜色 展示 QML 内置的 12 种常用命名颜色
十六进制输入 通过输入框实时修改前景色、背景色、边框色
颜色对话框 使用系统颜色选择器选择任意颜色
渐变色 支持水平和垂直方向的线性渐变
组件应用 展示颜色在 Button、Slider、Switch、TextField 等组件中的应用

Charts 组件

qml_charts/ - Charts 组件的使用

示例 说明
坐标轴类型 数值、对数、日期、分类、柱形图分类
ChartView 属性 Legend(图例)、主题、动画
基础示例 折线图、曲线图、散点图、折线图的鼠标交互
极坐标示例 极坐标图、雷达扫描
柱形图类型 柱形图、水平柱形图、百分比柱形图、水平百分比柱形图、堆叠柱形图、水平堆叠柱形图
交互示例 柱形图信号交互、饼图交互、面积图交互等
其它示例 箱线图、蜡烛图(K 线图)、股价走势图等

其他示例

qml_timer/ - 定时器

示例 说明
单次触发 延时执行和一次性任务处理
重复触发 周期性任务的连续执行
启动触发 组件初始化时的时间控制
动画控制 与界面动画的协调配合

qml_separator/ - 分隔符

示例 说明
Rectangle 分隔线 使用 Rectangle 实现基础的水平和垂直分隔线
菜单分隔线 MenuSeparator 在弹出菜单中的标准应用
工具栏分隔线 ToolSeparator 在工具栏中对操作按钮进行分组
自定义分隔线 使用圆点组成的创意分隔线效果

qml_login/ - 登录界面

演示完整的登录界面,包括表单验证和用户交互。

qml_js_interaction/ - JavaScript 交互示例

展示 QML 与 JavaScript 的四种交互方式:内联调用、外部文件、信号处理、工作线程(WorkerScript)。


学习资源

相关推荐
程序员老陆7 小时前
使用Qt+大华设备SDK预览大华摄像机视频
qt·算法·音视频·视频监控
郝学胜-神的一滴8 小时前
Qt 高级编程 035:无边框窗口阴影以及圆角双特效实现
开发语言·c++·qt·程序人生·用户界面
甄同学1 天前
第二十篇:MCP协议集成,Claude Code如何扩展AI Agent的能力边界
开发语言·人工智能·qt
Liknana1 天前
Qt 圆角表格控件实战:setMask + 抗锯齿描边 + 多层阴影
qt·ui
Scott9999HH1 天前
2026 避坑实录:国产品牌压力变送器什么牌子好?从硬件抗扰到 C++ Qt 实时曲线绘制源码剖析
开发语言·c++·qt
皓悦编程记2 天前
【YOLO26 系列】基于YOLO26的垃圾分类检测系统【python源码+Pyqt5界面/WEB+数据集+训练代码】
python·qt·分类
十五年专注C++开发2 天前
qobject_cast转换失败原因分析
c++·qt·dynamic_cast·qobject_cast
sycmancia2 天前
Qt——线程的生命期问题
开发语言·qt
闻道且行之3 天前
TurboOCR:基于PP-OCRv6的极速Windows离线OCR工具,深度解析3.4GB依赖背后的技术架构
c++·人工智能·python·qt·机器学习·ocr