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 需要直接或通过其他依赖关系与模块库链接。包括CMakeqmake 在内的多个构建工具都为此提供了专门支持。

使用 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

按钮控件

AbstractButton

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

Button

按钮,点击后可执行命令或回答问题

CheckBox

可打开或关闭的复选按钮

DelayButton

按住足够长的时间即可触发的复选按钮

RadioButton

可打开或关闭的专用单选按钮

RoundButton

用户可点击的圆角按钮控件

Switch

可打开或关闭的按钮

ToolButton

外观适合工具栏的按钮

容器控件

ApplicationWindow

支持页眉和页脚的样式顶层窗口

Container

抽象基本类型,提供容器的通用功能

Frame

逻辑控件组的视觉框架

GroupBox

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

HorizontalHeaderView

为 TableView 提供水平标题视图

Page

支持页眉和页脚的样式页面控件

Pane

提供与应用程序风格和主题相匹配的背景

ScrollView

可滚动视图

SplitView

在每个项目之间使用可拖动的分割器排列项目

StackView

提供基于堆栈的导航模型

SwipeView

允许用户通过横向滑动浏览页面

TabBar

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

ToolBar

上下文相关控件的容器

VerticalHeaderView

提供与表格视图配套的垂直标题视图

委托控件

CheckDelegate

带有可打开或关闭的复选指示器的项目委托

ItemDelegate

可用于各种视图和控件的基本项目委托

RadioDelegate

专属项目委托,带有可打开或关闭的单选指示器

SwipeDelegate

可轻扫的项目委托

SwitchDelegate

带有可打开或关闭的开关指示器的项目委托

TableViewDelegate

可分配给 TableView 的委托

TreeViewDelegate

可分配给树状视图的委托

指示器控件

BusyIndicator

指示后台活动,例如正在加载内容时

PageIndicator

显示当前活动页面

ProgressBar

显示操作进度

ScrollBar

垂直或水平交互式滚动条

ScrollIndicator

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

输入控件

ComboBox

用于选择选项的组合按钮和弹出列表

Dial

旋转圆形刻度盘可设置数值

RangeSlider

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

Slider

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

TextArea

多行文本输入区

TextField

单行文本输入框

Tumbler

可选择项目的可旋转滚轮

ContextMenu

附加类型提供了一种以适合平台的方式打开上下文菜单的方法

Menu

弹出式菜单,可用作上下文菜单或弹出菜单

MenuBar

提供窗口菜单栏

MenuBarItem

在菜单栏中显示下拉菜单

MenuItem

在菜单中显示一个项目

Drawer

可使用轻扫手势打开和关闭的侧边面板

StackView

提供基于堆栈的导航模式

SwipeView

使用户能够通过横向轻扫浏览页面

TabBar

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

TabButton

具有适合 TabBar 外观的按钮

Dialog

带有标准按钮和标题的弹出对话框,用于与用户进行短期互动

Drawer

可使用轻扫手势打开和关闭的侧边面板

Menu

可用作上下文菜单或弹出菜单的弹出窗口

Popup

弹出式用户界面控件的基本类型

ToolTip

为任何控件提供工具提示

分隔控件

MenuSeparator

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

ToolSeparator

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

版本

Qt Quick Controls 2.0 在 Qt 5.7 中引入。随后发布的 Qt 次版本将 模块的导入版本递增一个,直到 Qt 5.12,导入版本与 Qt 的次版本一致。Qt Quick Controls

在 Qt 6 中,主版本和次版本都匹配,QML 中的导入可以省略版本号。如果省略了版本号,将使用最新版本。

Qt Labs 实验模块使用导入版本 1.0。

QtQtQuickQtQuick.Controls,
QtQuick.Controls.Material,
QtQuick.Controls.Universal,
QtQuick.Templates
Qt.labs.platform
5.72.72.01.0
5.82.82.11.0
5.92.92.21.0
5.102.102.31.0
5.112.112.41.0
5.122.122.121.0
6.06.06.01.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.