QML QuickControls2 自定义颜色主题

QML QuickControls2 custom color themes

我在我的应用中使用 Material 样式。我知道如何使用 qtquickcontrols2.conf 文件在主题之间切换:

[Controls]
Style=Material

[Universal]
Theme=Dark
Accent=Red

[Material]
Theme=Dark
Primary=Gray
Accent=#825AA7

但是假设我想预定义 Material 的主题,例如:粉色、绿色、蓝色。每个主题都有自己的预定义颜色 PrimaryAccent 等。用户应该能够在运行时在这些主题之间切换。如何做到这一点?

据我了解,您想在运行时更改颜色。

在你的代码中你应该添加这个。它使用 属性 变量 globalColorglobalTheme(您可以根据需要重命名这些)

Material.accent: Material.color(globalColor)
Material.theme: globalTheme

property string globalColor: Material.Blue   
property int globalTheme: Material.Light

如果您需要更改颜色或主题 (深色、浅色),您必须更改属性 globalColorglobalTheme 的值。

另外,如果你需要保存颜色和主题,你可以在Settings 中添加这段代码(如下例) 将值保存在应用程序设置中。

Settings {
    property string globalColor: Material.Blue
    property int globalTheme: Material.Light
}