Qt Quick Controls QML Types
Qt Quick Controls 提供了用于创建用户界面的 QML 类型。这些 QML 类型与 Qt Quick 以及 Qt Quick Layouts配合使用。
Qt Quick Controls 您可以在 .qml 文件中使用以下导入语句将 QML 类型导入到应用程序中:
import QtQuick.ControlsQML 类型
提供按钮通用功能的抽象基类 | |
抽象用户界面操作 | |
将操作组合在一起 | |
支持页眉和页脚的带样式顶级窗口 | |
用于指示后台活动,例如在加载内容时 | |
可点击以执行命令或回答问题的按钮 | |
一组互斥的可选中按钮 | |
日历命名空间 | |
日历模型 | |
可切换开启或关闭的复选按钮 | |
带有可切换开启或关闭状态的复选指示器的项目委托 | |
用于选择选项的按钮与弹出列表组合控件 | |
提供容器通用功能的抽象基类 | |
附加类型提供了一种以符合平台规范的方式打开上下文菜单的方法 | |
提供所有控件通用功能的抽象基类 | |
一周中各天的名称列表 | |
长按即可触发的复选按钮 | |
通过旋转来设置值的圆形旋钮 | |
带有标准按钮和标题的弹出式对话框,用于与用户进行短期交互 | |
用于对话框的按钮框 | |
允许用户从一组预设的浮点数值中进行选择 | |
可通过滑动手势打开和关闭的侧边面板 | |
用于逻辑控件组的视觉框架 | |
用于逻辑控件组的视觉框架和标题 | |
提供一个与 TableView 配套的水平标题视图 | |
可在各种视图和控件中使用的基本项目委托 | |
具有继承字体的样式化文本标签 | |
可作为上下文菜单或弹出菜单使用的弹出窗口 | |
提供窗口菜单栏 | |
在菜单栏中显示下拉菜单 | |
在菜单中显示一个项目 | |
将菜单中的一组项目与相邻项目分隔开 | |
日历月份的日期网格 | |
用于弹出窗口的窗口覆盖层 | |
支持页眉和页脚的样式化页面控件 | |
指示当前活动页面 | |
提供与应用程序样式和主题相匹配的背景 | |
类似弹出窗口的用户界面控件的基础类型 | |
显示操作进度 | |
可切换开启或关闭的互斥单选按钮 | |
带单选指示器的排他性项目委托,该指示器可切换为开启或关闭状态 | |
用于通过沿轨道滑动两个控件来选择一组数值 | |
一个具有圆角、可供用户点击的按钮控件 | |
垂直或水平的交互式滚动条 | |
垂直或水平的非交互式滚动指示器 | |
可滚动视图 | |
专为搜索功能设计的专用输入框 | |
用于在 TableView 中选择表格单元格 | |
用于通过沿轨道滑动滑块来选择值 | |
允许用户从一组预设值中进行选择 | |
为 SplitView 滑块提供附加属性 | |
在每个项目之间放置可拖动的分隔线来排列项目 | |
提供基于堆栈的导航模型 | |
可滑动项目委托 | |
允许用户通过横向滑动来浏览页面 | |
可开启或关闭的按钮 | |
带有可开启或关闭的开关指示器的项目委托 | |
允许用户在不同的视图或子任务之间切换 | |
外观适合用于 TabBar 的按钮 | |
可分配给 TableView 的委托 | |
多行文本输入区域 | |
单行文本输入字段 | |
用于上下文相关控件的容器 | |
外观适合用于工具栏的按钮 | |
用于将工具栏中的一组项目与相邻项目分隔开来 | |
为任何控件提供工具提示 | |
可分配给 TreeView 的委托 | |
可选项目的旋转选择轮 | |
为 TableView 提供垂直标题视图 | |
一列周数 |
在属性声明中使用Qt Quick Controls 类型
如 Qt Quick Templates 2 QML Types所述,Qt Quick Controls 中的每种类型都由一种 C++ “模板”类型作为后端支持。这些类型是控件逻辑和行为的非可视化实现。
例如,Menu 类型的 API 和行为由Qt Quick Templates 中的 C++ 类型定义。 任何希望提供菜单(Menu)的样式都必须提供一个 Menu.qml 文件,且该文件中的根项必须是来自Qt Quick Templates 中的 Menu。当您导入QtQuick.Controls 并在 QML 中创建一个菜单时,所获得的类型实际上是由该样式对应的 Menu.qml 文件定义的 QML 菜单。
若要在属性声明中将某个控件用作类型,应使用来自Qt Quick 模板库中的对应类型。例如,假设有一个PopupOpener 组件,它是一个可打开弹出窗口的 Button:
// PopupButton.qml
import QtQuick.Controls
Button {
required property Popup popup
onClicked: popup.open()
}
// main.qml
PopupButton {
popup: saveChangesDialog
}
Dialog {
id: saveChangesDialog
// ...
}运行此代码将导致错误:
Unable to assign Dialog_QMLTYPE to Popup_QMLTYPE这是由于继承层次结构所致:
Popup (C++ type in QtQuick.Templates)
│ └── Popup (QML type in QtQuick.Controls)
└── Dialog (C++ type in QtQuick.Templates)
└── Dialog (QML type in QtQuick.Controls)QtQuick.Controls 中的 Dialog 并非继承自QtQuick.Controls 中的 Popup,而是继承自QtQuick.Templates 。
因此,应使用Qt Quick 模板中的 Popup 作为属性类型:
// PopupButton.qml
import QtQuick.Controls
import QtQuick.Templates as T
Button {
required property T.Popup popup
onClicked: popup.open()
}有关Qt Quick Controls 模块的更多信息,请参阅 Qt Quick Controls 模块文档。
相关信息
© 2026 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.