本页内容

QQuickStyle Class

QQuickStyle 类允许配置应用程序的样式。更多内容...

标题: #include <QQuickStyle>
CMake: find_package(Qt6 REQUIRED COMPONENTS QuickControls2)
target_link_libraries(mytarget PRIVATE Qt6::QuickControls2)
qmake: QT += quickcontrols2

静态公共成员

QString name()
void setFallbackStyle(const QString &style)
void setStyle(const QString &style)

详细说明

QQuickStyle 提供了用于查询和配置Qt Quick Controls 应用程序样式的API。

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickStyle>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQuickStyle::setStyle("Material");

    QQmlApplicationEngine engine;
    engine.load(QUrl("qrc:/main.qml"));

    return app.exec();
}

注意: 在加载导入Qt Quick Controls 的QML文件之前,必须先配置样式 。一旦QML类型被注册,就无法再更改样式。

注意: 在使用编译时样式选择时,不支持QQuickStyle 。

要创建自己的自定义样式,请参阅“创建自定义样式”。自定义样式无需实现所有控件。默认情况下,样式系统会将“Basic”样式用作自定义样式未提供的控件的备选样式。可以指定不同的备选样式来定制或扩展其中一种内置样式。

QQuickStyle::setStyle("MyStyle");
QQuickStyle::setFallbackStyle("Material");

另请参阅 《 Qt Quick Controls 的样式设置》。

成员函数文档

[static] QString QQuickStyle::name()

返回应用程序样式的名称。

注意: 可以通过传递-style 命令行参数来指定应用程序样式 。因此,如果在构建QGuiApplication 之前调用name() ,该函数可能无法返回完全解析后的值。

[static] void QQuickStyle::setFallbackStyle(const QString &style)

将应用程序的备用样式设置为style 。

注意: 备用样式必须是内置Qt Quick Controls 样式之一,例如“Material”。

注意: 必须在加载导入Qt Quick Controls 的 QML之前配置该样式 。QML 类型注册完成后,将无法更改该样式。

还可以通过设置QT_QUICK_CONTROLS_FALLBACK_STYLE 环境变量来指定备用样式。

另请参阅 setStyle() 以及《Qt Quick Controls 》中的“使用样式”。

[static] void QQuickStyle::setStyle(const QString &style)

将应用程序样式设置为style 。

注意: 必须在加载导入Qt Quick Controls的QML之前配置该 样式。一旦QML类型被注册,就无法再更改该样式。

另请参阅 setFallbackStyle() 以及《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.