如何在最新的Qt5.8中使用Universal.System或Material.System?

如何在最新的Qt5.8中使用Universal.System或Material.System?,qt,qml,qtquick2,qt5.8,Qt,Qml,Qtquick2,Qt5.8,我正在玩Qt5.8RC和在通用主题和材质主题中引入的新属性系统 然而,当设计一个可定制的应用程序时,人们可以选择通用的或与黑暗、光明或系统相结合的材料。我怎么知道系统实际上不是字符串“系统”,而是“暗”或“光” 下面是我试图构建的内容(settings.qml): 显然,以下用于处理“硬”值的代码不再有效(main.qml): 有什么想法吗?上面写着: 将主题设置为“系统”可选择亮主题或暗主题 基于系统主题颜色。但是,在读取 主题属性,值永远不是系统,而是实际的主题 因此,如果您检查Mater

我正在玩Qt5.8RC和在通用主题和材质主题中引入的新属性系统

然而,当设计一个可定制的应用程序时,人们可以选择通用的或与黑暗、光明或系统相结合的材料。我怎么知道系统实际上不是字符串“系统”,而是“暗”或“光”

下面是我试图构建的内容(settings.qml):

显然,以下用于处理“硬”值的代码不再有效(main.qml):

有什么想法吗?

上面写着:

将主题设置为“系统”可选择亮主题或暗主题 基于系统主题颜色。但是,在读取 主题属性,值永远不是系统,而是实际的主题


因此,如果您检查
Material.theme
Universal.theme
的值,它们都应该返回其有效值,而不是您设置的值。

Hmm。。这很奇怪,因为onClicked:{console.log(Material.theme)}总是在Qt Creator
Material.theme:Material.Dark中返回qml:0;Component.onCompleted:打印(Material.theme)
为我打印
1
。设置
Material.theme:Material.System
将使用您的系统正在使用的任何东西,因此如果这是一个轻主题,它将始终返回
0
:我认为我下载的RC工作不好。当我使用助手从头开始一个新项目时(并将最新版本号放入导入中),
qtquickcontrols2.conf中的
Accent=BlueGrey
不起作用:我在控制台中看到一个错误,
Theme=Dark
Theme=Light
很好,但是
Theme=System
总是依赖于灯光。如果没有一个完整的示例可以尝试,我就无能为力,对不起。事实上,现在在Windows上,你可以设置暗或亮,这反映在类似计算器的应用程序中,但决不会在Qt应用程序中。所以我在这里打开了一个问题:基本上是这个线程。你可以在C++中指定不同的,并尝试做那个检查。
RadioButton {
    text: qsTr("Light")
    checked: appSettings.theme === "Light"
    ButtonGroup.group: modeBG
    onClicked: {
        appSettings.theme = "Light"
        appSettings.background = "white"
        appSettings.menuPaneColor = "#eeeeee"
    }
}
RadioButton {
    text: qsTr("Dark")
    checked: appSettings.theme === "Dark"
    ButtonGroup.group: modeBG
    onClicked: {
        appSettings.theme = "Dark"
        appSettings.background = "black"
        appSettings.menuPaneColor = "#171717"
    }
}
RadioButton {
    text: qsTr("System theme")
    ButtonGroup.group: modeBG
    onClicked: {
        appSettings.theme = "System"
        //appSettings.background = "black"
        //appSettings.menuPaneColor = "#171717"
    }
}
ToolButton {
    id: burgerMenu
    checkable: appSettings.burgerMenuIsChecked
    contentItem: Image {
        fillMode: Image.Pad
        horizontalAlignment: Image.AlignHCenter
        verticalAlignment: Image.AlignVCenter
        source: "qrc:/images/" + appSettings.style + "/" + appSettings.theme + "/drawer.png"
    }
    ...
}