Qt Quick 控件 QML 类型

Qt Quick 控件 提供用于创建用户界面的 QML 类型。这些 QML 类型与 Qt QuickQt Quick Layouts 一起使用。

您可以使用以下导入语句将 Qt Quick 控件 QML 类型导入到您的 .qml 文件中

import QtQuick.Controls

QML 类型

AbstractButton

提供按钮共通功能的抽象基类型

Action

抽象用户界面操作

ActionGroup

将操作组合在一起

ApplicationWindow

具有标题和页脚支持的样式化顶层窗口

BusyIndicator

指示后台活动,例如,在加载数据时

Button

可点击以执行命令或回答问题的按钮

ButtonGroup

互斥的复选按钮组

Calendar

日历命名空间

CalendarModel

日历模型

CheckBox

可切换开或关的复选框

CheckDelegate

带有可切换开或关的复选指示器的项目代理

ComboBox

结合按钮和弹出列表以便选择选项

Container

提供容器共通功能的抽象基类型

Control

提供所有控件共通功能的抽象基类型

DayOfWeekRow

星期中每天名称的行

DelayButton

按下足够长时间时触发的复选框

Dial

旋转以设置值的圆形刻度盘

Dialog

包含标准按钮和标题的弹出对话框,用于与用户的短期交互

DialogButtonBox

对话框中使用的按钮框

Drawer

可滑动打开和关闭的侧面板

Frame

逻辑控件组的外观框架

GroupBox

逻辑控件组的可视化框架和标题

HorizontalHeaderView

为 TableView 提供水平标题视图

ItemDelegate

可用于各种视图和控件的基本项目代理

Label

具有继承字体的样式化文本标签

Menu

可用的上下文菜单或弹出菜单

MenuBar

提供窗口菜单栏

MenuBarItem

在菜单栏中呈现下拉菜单

MenuItem

在菜单中呈现一项

MenuSeparator

将菜单中的项目组与相邻的项目分开

MonthGrid

日历月份中天数网格

Overlay

弹出窗口的窗口叠加

Page

具有标题和页脚支持的样式化页面控件

PageIndicator

指示当前活动的页面

Pane

提供与应用程序样式和主题匹配的背景

Popup

类似弹出窗口的用户界面控件的基本类型

进度条

表示操作进度

单选按钮

可切换开关的单选按钮

单选委托

具有可切换开关的单选指示器的独占项委托

范围滑块

通过沿轨道滑动两个手柄来选择值范围

圆形按钮

用户可以点击的具有圆角的可析按钮

滚动条

垂直或水平交互式滚动条

滚动指示器

垂直或水平非交互式滚动指示器

滚动视图

可滚动视图

选择矩形

用于在表视图中选择单元格

滑块

通过沿轨道滑动手柄来选择值

微调框

允许用户从预设值集中选择

分割句柄

提供用于 SplitView 句柄的附加属性

分割视图

在每个项目之间放置可拖动分隔符以布局项目

堆叠视图

提供基于堆栈的导航模型

滑动委托

可滑动项目委托

滑动视图

用户可以通过横向滑动来切换页面

开关

可切换开关的按钮

开关委托

具有可切换开关指示器的项委托

标签栏

允许用户在不同视图或子任务之间切换

标签按钮

外观适合标签栏的按钮

文本区域

多行文本输入区域

文本框

单行文本输入框

工具栏

用于括有上下文相关控件的容器

工具按钮

外观适合工具栏的按钮

工具分隔符

将工具栏中的一项组与相邻项分开

工具提示

为任何控件提供工具提示

树视图委托

可以将此委托分配给树视图

翻转轮

可旋转选择的项目轮轨

垂直表头视图

为表视图提供垂直表头视图

周数列

表示周数的列

在属性声明中使用 Qt Quick 控制类型

Qt Quick Templates 2 QML 类型所述,Qt Quick Controls 中的每个类型都由 Qt Quick Templates 中的 C++ "模板" 类型支持。这些类型是控件逻辑和行为的非可视实现。

例如,Menu 类型的 API 和行为由 Qt Quick Templates 中的 C++ 类型定义。每个样式都希望提供菜单,都必须有一个可用的 Menu.qml,并且该文件中的根项必须是 Qt Quick Templates 中的 Menu。当您导入 QtQuick.Controls 并在 QML 中创建一个菜单时,您得到的类型实际上是由样式的 Menu.qml 定义的 QML 菜单。

为了将控件用作属性声明中的类型,您应使用 Qt Quick Templates 中的相应类型。例如,假设您有一个 PopupOpener 组件,它是一个打开弹出窗口的按钮

// 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 Templates 中的 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 模块文档。

© 2024 The Qt Company Ltd. 本文档中包含的文档贡献拥有各自的版权。提供的文档根据自由软件基金会发布的协议许可,许可条款为GNU自由文档许可版1.3。Qt及其相关标志是芬兰和/或全球其他国家的The Qt Company Ltd.的商标。所有其他商标均为其各自所有权人的财产。