通用风格

通用风格基于微软通用设计指南。更多

导入声明:导入 QtQuick.Controls.Universal 2.12
Qt 5.7

附加属性

附加方法

  • colorcolor(预定义枚举)

详细说明

通用样式是基于《微软通用设计指南》(Microsoft Universal Design Guidelines)的一种与设备无关的样式。通用样式在所有设备(从手机、平板电脑到个人电脑)上都具有良好的外观。

通用风格的浅色主题。

通用风格的深色主题。

要使用通用样式运行应用程序,请参阅Qt Quick Controls 中使用样式

注意: 通用样式不是本地 Windows 10 样式。通用样式是 100% 跨平台的Qt Quick Controls 样式实现,遵循 Microsoft 通用设计指南。该样式可在任何平台上运行,在任何地方看起来都大致相同。由于可用系统字体和字体渲染引擎的不同,可能会出现细微差别。

自定义

通用样式允许自定义四个属性:主题重音前景背景

可以为任何窗口或项目指定这两种属性,它们会以与fonts 相同的方式自动传播给子代。在下面的示例中,窗口和所有三个单选按钮都显示为深色主题,并使用紫色重音色:

import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Controls.Universal 2.12

ApplicationWindow {
    visible: true

    Universal.theme: Universal.Dark
    Universal.accent: Universal.Violet

    Column {
        anchors.centerIn: parent

        RadioButton { text: qsTr("Small") }
        RadioButton { text: qsTr("Medium");  checked: true }
        RadioButton { text: qsTr("Large") }
    }
}

除了在 QML 中指定属性外,还可以通过环境变量或在配置文件中指定。在 QML 中指定的属性优先于所有其他方法。

配置文件

变量说明
Theme指定默认通用主题。该值可以是可用主题之一,例如"Dark"
Accent指定默认通用重点色。该值可以是任何color ,但建议使用其中一种预定义的通用颜色,例如"Violet"
Foreground指定默认通用前景色。该值可以是任何color ,也可以是预定义的通用颜色之一,例如"Brown"
Background指定默认通用背景色。该值可以是任何color ,也可以是预定义的通用颜色之一,例如"Steel"

有关配置文件的更多详情,请参阅Qt Quick Controls 配置文件

环境变量

变量说明
QT_QUICK_CONTROLS_UNIVERSAL_THEME指定默认通用主题。该值可以是可用主题之一,例如"Dark"
QT_QUICK_CONTROLS_UNIVERSAL_ACCENT指定默认通用重点色。该值可以是任何color ,但建议使用其中一种预定义的通用颜色,例如"Violet"
QT_QUICK_CONTROLS_UNIVERSAL_FOREGROUND指定默认通用前景色。该值可以是任何color ,也可以是预定义的通用颜色之一,例如"Brown"
QT_QUICK_CONTROLS_UNIVERSAL_BACKGROUND指定默认通用背景色。该值可以是任何color ,也可以是预定义的通用颜色之一,例如"Steel"

有关支持的环境变量的完整列表,请参阅 Qt Quick Controls 中的支持的环境变量。

依赖关系

必须单独导入通用样式,才能访问通用样式特有的属性。需要注意的是,无论是否引用 Universal 样式,相同的应用程序代码都可以在任何其他样式下运行。只有在使用通用样式运行应用程序时,通用样式的特定属性才会生效。

如果通用样式被导入到始终加载的 QML 文件中,则通用样式必须与应用程序一起部署,这样才能运行应用程序,而不管应用程序以哪种样式运行。通过使用文件选择器,可以应用特定于样式的调整,而不会对样式产生硬性依赖。

预设通用颜色

可用的预定义颜色:

常量描述
Universal.Lime
#A4C400
Universal.Green
#60A917
Universal.Emerald
#008A00
Universal.Teal
#00ABA9
Universal.Cyan
#1BA1E2
Universal.Cobalt
#3E65FF (默认重音)
Universal.Indigo
#6A00FF
Universal.Violet
#AA00FF
Universal.Pink
#F472D0
Universal.Magenta
#D80073
Universal.Crimson
#A20025
Universal.Red
#E51400
Universal.Orange
#FA6800
Universal.Amber
#F0A30A
Universal.Yellow
#E3C800
Universal.Brown
#825A2C
Universal.Olive
#6D8764
Universal.Steel
#647687
Universal.Mauve
#76608A
Universal.Taupe
#87794E

另请参阅 基本样式材料样式

附加属性文档

Universal.accent:颜色

此附加属性用于保存主题的强调色。该属性可附加到任何窗口或项目。该值会传播给子代。

默认值为Universal.Cobalt

在下面的示例中,高亮按钮的强调色更改为Universal.Orange

Button {
    text: qsTr("Button")
    highlighted: true
    Universal.accent: Universal.Orange
}

注意: 尽管突出显示的颜色可以是任何color ,但建议使用预先定义的通用颜色,这些颜色可与通用样式调色板的其余部分配合使用。


Universal.background:颜色

该附加属性用于保存主题的背景颜色。该属性可附加到任何窗口或项目。该值会传播给子代。

默认值为特定主题(浅色或深色)。

在下面的示例中,窗格的背景颜色更改为Universal.Steel

Pane {
    Universal.background: Universal.Steel

    Button {
        text: qsTr("Button")
    }
}


Universal.foreground:color

该附加属性用于保存主题的前景色。该属性可附加到任何窗口或项目。该值会传播给子代。

默认值为特定主题的颜色(浅色或深色)。

在下面的示例中,按钮的前景色设置为Universal.Pink

Button {
    text: qsTr("Button")
    Universal.foreground: Universal.Pink
}

Universal.theme:枚举

该附加属性用于确定主题是浅色还是深色。该属性可附加到任何窗口或项目。该值会传播给子代。

可用主题

常量描述
Universal.Light浅色主题(默认)
Universal.Dark深色主题
Universal.System系统主题

将主题设置为System 时,会根据系统主题颜色选择浅色或深色主题。不过,在读取 theme 属性的值时,该值绝不是System ,而是实际主题。

在下面的示例中,窗格和按钮的主题都设置为Universal.Dark

Pane {
    Universal.theme: Universal.Dark

    Button {
        text: qsTr("Button")
    }
}


附加方法文档

color color 预定义枚举)

此附加方法返回指定的预定义通用颜色的有效颜色值。

Rectangle {
    color: Universal.color(Universal.Red)
}

© 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.