Qml QtQuickControls2,在运行时更改样式属性

dan*_*e86 2 qt qml qtquick2 material-design qtquickcontrols2

我应该在运行时设置 Material 样式的属性,例如在用户单击定义的按钮时更改主题值(亮/暗)。我已经使用 qtquickcontrols2.conf 及其属性(主题、重音和主要)配置了 Material 样式。我无法导入 QtQuick.Controls.Materials 2.0,因为我不知道,但我正在使用 QtCreator 4.0.2 在 Ubuntu 上工作,并且未检测到 QtQuick.Controls.Materials 和 QtQuick.Controls.Universal 导入。我的目标只是在运行时将材质样式的主题从浅色变为深色,反之亦然。如何集成此功能?谢谢指教。

最好的问候丹尼尔

Mit*_*tch 7

我无法导入 QtQuick.Controls.Materials 2.0,因为我不知道,但我正在使用 QtCreator 4.0.2 在 Ubuntu 上工作,并且未检测到 QtQuick.Controls.Materials 和 QtQuick.Controls.Universal 导入。

您至少需要 Qt 5.7.0 才能使用Qt Quick Controls 2.0导入。

我的目标只是在运行时将材质样式的主题从浅色变为深色,反之亦然。

您可以像这样在运行时切换主题:

import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Controls.Material 2.0

ApplicationWindow {
    id: window
    width: 200
    height: 200
    visible: true

    Material.theme: themeSwitch.checked ? Material.Dark : Material.Light

    Switch {
        id: themeSwitch
        text: "Dark"
        anchors.centerIn: parent
    }
}
Run Code Online (Sandbox Code Playgroud)

gif