样式Qt Quick Controls

可用样式

Qt Quick Controls 有多种样式可供选择。

基本款式

基本款式是一种简单轻便的全能款式,可为Qt Quick Controls 提供最大性能。

融合风格

Fusion 风格的浅色主题。

Fusion 风格的深色主题。

Fusion 风格是一种与平台无关的风格,可为Qt Quick Controls 提供面向桌面的外观和感觉。

想象风格

Imagine 风格基于图像资产。该风格自带一组默认图片,只需提供一个使用预定义命名规则的图片目录,即可轻松更改。

macOS 风格

macOS 风格的浅色主题。

macOS 风格的深色主题

macOS 风格是 macOS 的原生外观风格。

注意: 此样式仅适用于在 macOS 上运行的应用程序。

iOS 风格

iOS 风格的浅色主题。

iOS 风格的深色主题。

iOS 风格是基于图像资产的 iOS 原生外观风格。

注意: 此样式仅适用于在 iOS 上运行的应用程序。

材质风格

材质风格的浅色主题。

材质风格的深色主题。

Material 风格根据Google Material Design Guidelines 提供了吸引人的设计,但比 Basic 风格需要更多的系统资源。

通用风格

通用风格的浅色主题。

通用风格的深色主题。

通用风格根据《微软通用设计指南》提供了吸引人的设计,但比基本风格需要更多的系统资源。

Windows 风格

Windows风格是 Windows 的本机外观风格。

注意: 该样式仅适用于在 Windows 上运行的应用程序。

FluentWinUI3 风格

FluentWinUI3 风格的浅色主题。

FluentWinUI3 风格的深色主题。

FluentWinUI3 风格是一种现代的本地外观风格,专为运行 Windows 11 及以上版本的平台设计,遵循 Fluent UI 和 WinUI 3 设计指南。FluentWinUI3 可在所有支持的平台上运行。

Qt Quick Controls

默认样式

如果未明确设置样式,则将使用默认样式。使用的样式取决于操作系统:

对于所有其他操作系统,则使用基本样式

编译时样式选择

编译时样式选择是一种通过在 QML 中导入样式来指定要使用的样式的方法。例如,导入 Material 样式:

// The style must be imported before any other QtQuick.Controls imports.

import QtQuick.Controls.Material

ApplicationWindow {
    // ...
}

注意没有导入QtQuick.Controls(负责运行时样式选择)。后备样式由样式的 qmldir 指定:

module QtQuick.Controls.Material
# ...
import QtQuick.Controls.Basic auto

编译时选择样式的好处是QML 编译器知道使用的是哪种特定样式,并能生成绑定的 C++ 代码。

另一个好处是不使用QtQuick.Controls 插件,因此无需与应用程序一起部署。

如果应用程序是静态构建的,那么显式导入也是必要的。

编译时样式选择的缺点是一个可执行文件不能支持多种样式,因为每种样式都需要自己的样式。

运行时样式选择

运行时样式选择是一种通过导入QtQuick.Controls 来指定要使用的样式的方法:

import QtQuick.Controls

QtQuick.Controls 插件将通过以下方式之一导入运行时设置的样式:

这些方法的优先级按照从高到低的顺序排列。例如,使用QQuickStyle 设置样式总是优先于使用命令行参数。

同样,也可以通过以下方法之一设置后备样式:

注意: 只有在主样式的 qmldir 文件中未静态选择回退样式时,才能动态选择回退样式。

运行时选择样式的好处是,一个应用程序二进制文件可以支持多种样式,这意味着最终用户可以选择使用哪种样式运行应用程序。

这种方法的缺点是QML 编译器无法知道使用的是哪种特定样式,因此无法生成绑定Qt Quick Controls 类型属性的 C++ 代码。这并不影响 QML 编译器为绑定其他模块的类型生成 C++ 的能力。

在 C++ 中使用 QQuickStyle

QQuickStyle QQuickStyle 提供了用于配置特定样式的 C++ API。以下示例使用 Material 风格运行 应用程序:Qt Quick Controls

QQuickStyle::setStyle("Material");

更多详情,请参阅QQuickStyle 的详细说明。

命令行参数

传递-style 命令行参数是测试不同样式的便捷方法。它优先于下面列出的其他方法。下面的示例使用 Material 风格运行了Qt Quick Controls 应用程序:

./app -style Material

环境变量

设置QT_QUICK_CONTROLS_STYLE 环境变量可用于设置全系统的样式首选项。它优先于下面提到的配置文件。以下示例使用 Universal 风格运行Qt Quick Controls 应用程序:

QT_QUICK_CONTROLS_STYLE=Universal ./app

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

配置文件

Qt Quick Controls 应用程序的资源中内置了一个特殊的配置文件 。:/qtquickcontrols2.conf

配置文件可指定首选样式(可通过前面描述的任一方法覆盖)和某些特定于样式的属性。下面的示例指定首选样式为 "材料 "样式。

[Controls]
Style=Material

有关配置文件的更多详情,请参阅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.