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 的主题,例如:粉色、绿色、蓝色。每个主题都有自己的预定义颜色 Primary
、Accent
等。用户应该能够在运行时在这些主题之间切换。如何做到这一点?
据我了解,您想在运行时更改颜色。
在你的代码中你应该添加这个。它使用 属性 变量 globalColor
和 globalTheme
。 (您可以根据需要重命名这些)
Material.accent: Material.color(globalColor)
Material.theme: globalTheme
property string globalColor: Material.Blue
property int globalTheme: Material.Light
如果您需要更改颜色或主题 (深色、浅色),您必须更改属性 globalColor
和 globalTheme
的值。
另外,如果你需要保存颜色和主题,你可以在Settings 中添加这段代码(如下例) 将值保存在应用程序设置中。
Settings {
property string globalColor: Material.Blue
property int globalTheme: Material.Light
}
我在我的应用中使用 Material
样式。我知道如何使用 qtquickcontrols2.conf
文件在主题之间切换:
[Controls]
Style=Material
[Universal]
Theme=Dark
Accent=Red
[Material]
Theme=Dark
Primary=Gray
Accent=#825AA7
但是假设我想预定义 Material 的主题,例如:粉色、绿色、蓝色。每个主题都有自己的预定义颜色 Primary
、Accent
等。用户应该能够在运行时在这些主题之间切换。如何做到这一点?
据我了解,您想在运行时更改颜色。
在你的代码中你应该添加这个。它使用 属性 变量 globalColor
和 globalTheme
。 (您可以根据需要重命名这些)
Material.accent: Material.color(globalColor)
Material.theme: globalTheme
property string globalColor: Material.Blue
property int globalTheme: Material.Light
如果您需要更改颜色或主题 (深色、浅色),您必须更改属性 globalColor
和 globalTheme
的值。
另外,如果你需要保存颜色和主题,你可以在Settings 中添加这段代码(如下例) 将值保存在应用程序设置中。
Settings {
property string globalColor: Material.Blue
property int globalTheme: Material.Light
}