Qt Quick Controls
Qt Quick Controls 提供了一组控件,可用于在 中构建完整的界面。该模块在 Qt 5.7 中引入。Qt Quick
Qt Quick Controls 该模块提供了一系列可定制的样式。更多详情,请参阅样式Qt Quick Controls 。
使用模块
QML API
模块的 QML 类型可通过QtQuick.Controls
导入使用。要使用这些类型,请在 .qml 文件中添加以下导入语句:
import QtQuick.Controls
C++ 应用程序接口
使用 Qt 模块的 C++ API 需要直接或通过其他依赖关系与模块库链接。包括CMake和qmake 在内的多个构建工具都为此提供了专门支持。
使用 CMake 构建
使用find_package()
命令在Qt6
软件包中找到所需的模块组件:
find_package(Qt6 REQUIRED COMPONENTS QuickControls2) target_link_libraries(mytarget PRIVATE Qt6::QuickControls2)
更多详情,请参阅使用 CMake 构建概述。
使用 qmake 构建
要配置使用 qmake 构建的模块,请在项目的 .pro 文件中添加模块作为QT
变量的值:
QT += quickcontrols2
从源代码构建
建议使用 Qt Image Formats模块,但不是必需的。它支持Imagine 风格使用的.webp
格式。
控件
有关Qt Quick Controls 的完整列表,请参见QML Types 。
按钮控件
提供按钮通用功能的抽象基本类型 | |
按钮,点击后可执行命令或回答问题 | |
可打开或关闭的复选按钮 | |
按住足够长的时间即可触发的复选按钮 | |
可打开或关闭的专用单选按钮 | |
用户可点击的圆角按钮控件 | |
可打开或关闭的按钮 | |
外观适合工具栏的按钮 |
容器控件
支持页眉和页脚的样式顶层窗口 | |
抽象基本类型,提供容器的通用功能 | |
逻辑控件组的视觉框架 | |
逻辑控件组的可视化框架和标题 | |
为 TableView 提供水平标题视图 | |
支持页眉和页脚的样式页面控件 | |
提供与应用程序风格和主题相匹配的背景 | |
可滚动视图 | |
在每个项目之间使用可拖动的分割器排列项目 | |
提供基于堆栈的导航模型 | |
允许用户通过横向滑动浏览页面 | |
允许用户在不同视图或子任务之间切换 | |
上下文相关控件的容器 | |
提供与表格视图配套的垂直标题视图 |
委托控件
带有可打开或关闭的复选指示器的项目委托 | |
可用于各种视图和控件的基本项目委托 | |
专属项目委托,带有可打开或关闭的单选指示器 | |
可轻扫的项目委托 | |
带有可打开或关闭的开关指示器的项目委托 | |
可分配给 TableView 的委托 | |
可分配给树状视图的委托 |
指示器控件
指示后台活动,例如正在加载内容时 | |
显示当前活动页面 | |
显示操作进度 | |
垂直或水平交互式滚动条 | |
垂直或水平非交互式滚动指示器 |
输入控件
用于选择选项的组合按钮和弹出列表 | |
旋转圆形刻度盘可设置数值 | |
通过沿轨道滑动两个手柄来选择数值范围 | |
通过沿轨道滑动一个手柄来选择一个值 | |
多行文本输入区 | |
单行文本输入框 | |
可选择项目的可旋转滚轮 |
菜单控件
附加类型提供了一种以适合平台的方式打开上下文菜单的方法 | |
弹出式菜单,可用作上下文菜单或弹出菜单 | |
提供窗口菜单栏 | |
在菜单栏中显示下拉菜单 | |
在菜单中显示一个项目 |
导航控制
可使用轻扫手势打开和关闭的侧边面板 | |
提供基于堆栈的导航模式 | |
使用户能够通过横向轻扫浏览页面 | |
允许用户在不同视图或子任务之间切换 | |
具有适合 TabBar 外观的按钮 |
弹出控件
带有标准按钮和标题的弹出对话框,用于与用户进行短期互动 | |
可使用轻扫手势打开和关闭的侧边面板 | |
可用作上下文菜单或弹出菜单的弹出窗口 | |
弹出式用户界面控件的基本类型 | |
为任何控件提供工具提示 |
分隔控件
将菜单中的一组项目与相邻项目分隔开来 | |
将工具栏中的一组项目与相邻项目分隔开来 |
版本
Qt Quick Controls 2.0 在 Qt 5.7 中引入。随后发布的 Qt 次版本将 模块的导入版本递增一个,直到 Qt 5.12,导入版本与 Qt 的次版本一致。Qt Quick Controls
在 Qt 6 中,主版本和次版本都匹配,QML 中的导入可以省略版本号。如果省略了版本号,将使用最新版本。
Qt Labs 实验模块使用导入版本 1.0。
Qt | QtQuick | QtQuick.Controls ,QtQuick.Controls.Material ,QtQuick.Controls.Universal ,QtQuick.Templates | Qt.labs.platform |
---|---|---|---|
5.7 | 2.7 | 2.0 | 1.0 |
5.8 | 2.8 | 2.1 | 1.0 |
5.9 | 2.9 | 2.2 | 1.0 |
5.10 | 2.10 | 2.3 | 1.0 |
5.11 | 2.11 | 2.4 | 1.0 |
5.12 | 2.12 | 2.12 | 1.0 |
6.0 | 6.0 | 6.0 | 1.0 |
... | ... | ... | ... |
修订
由于Qt Quick Controls 的实现方式,添加的新属性可能会与用户定义的同名属性发生冲突。例如,以下代码段将导致错误:
import QtQuick.Controls 2.13 ApplicationWindow { // ... ComboBox { anchors.centerIn: parent // As currentValue was added in 2.14, the versioned import above // should cause this property to be used, but instead an error is produced: // "Cannot override FINAL property" property int currentValue: 0 } }
这些属性应重新命名,以避免冲突。
模块进化
Qt Quick Controls 最初是以触摸界面为主要重点编写的。虽然现在已经可以开发桌面界面,但提供更原生的外观和感觉的工作仍在进行中。
对Qt Quick Controls 的更改列出了为 Qt 6 系列 Qt 在模块 API 和功能方面所做的重要更改。
文章和指南
实例
参考资料
相关模块
许可和归属
Qt Quick Controls 本程序可在The Qt Company 的商业许可证下使用。此外,它还可以在GNU Lesser General Public License 第 3 版或GNU General Public License 第 2 版下使用。更多详情,请参阅Qt 许可。
此外,Qt Quick Controls 可能包含以下许可下的第三方模块:
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.