在 Qt qml 中设置样式

Mul*_*ens 6 qt styling qml

我想在 qml 中设置元素的样式。为此,我想使用像 Material Style 这样的样式。使用可以在以下位置找到的示例:

https://doc.qt.io/qt-5/qtquickcontrols2-material.html

import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Controls.Material 2.12

ApplicationWindow {
   visible: true

   Material.theme: Material.Dark
   Material.accent: Material.Purple

   Column {
       anchors.centerIn: parent

       RadioButton { text: qsTr("Small") }
       RadioButton { text: qsTr("Medium");  checked: true }
       RadioButton { text: qsTr("Large") }
     }
}
Run Code Online (Sandbox Code Playgroud)

给我在我所附的图像中看到的结果。无论我使用哪种风格,都不会发生任何变化。

我目前在 Windows 10 操作系统下使用最新的免费 Qt 版本。

谁能帮我?是否可以简单地在 QML 中全局覆盖样式并创建自己的样式。

在此输入图像描述

eyl*_*esc 12

正如文档指出的:

要运行具有 Material 样式的应用程序,请参阅在 Qt Quick Controls 中使用样式

在 Qt Quick Controls 2 中设置样式有多种方法:

  1. 在 C++ 中使用 QQuickStyle

    • 添加QT += quickcontrols2到您的 .pro 中并在 main.cpp 中使用#include <QQuickStyle>andQQuickStyle::setStyle("Material");
  2. 命令行参数

    • 您可以通过添加参数从控制台/CMD 运行:./your_executable -style material
    • 如果您使用 Qt Creator,您可以转到 Projects-> Build & Run-> Run 并在命令行参数中添加:-style material

在此输入图像描述

  1. 环境变量

    • 您可以从控制台/CMD 运行:QT_QUICK_CONTROLS_STYLE=material ./your_executable
    • 如果您使用的是 Qt Creator,您可以将其添加到“项目”->“构建和运行”->“运行”->“运行环境”部分。

    在此输入图像描述

    • 或者qputenv("QT_QUICK_CONTROLS_STYLE", "material");在main.cpp中添加。
  2. 配置文件

    必须创建qtquickcontrols2.conf文件:

    [Controls]
    Style=Material
    
    Run Code Online (Sandbox Code Playgroud)

    并且必须位于 qresource 中:

    [Controls]
    Style=Material
    
    Run Code Online (Sandbox Code Playgroud)