所以目前我有 3 种 Qml 类型:
ThemeToUse.qml
QtObject {
property Palette palette: Palette {}
Component.onCompleted: {
if (themeContext) {
palette = themeContext.palette
}
}
}
调色板.qml
QtObject {
property color WindowsColor: "red"
}
BaseTheme.qml
QtObject {
property Palette palette: BaseTheme.Palette {}
}
BaseTheme.Palette.qml
Palette {
WindowsColor: "green" // can reimplement existing colors
property color NewColor: "black" // and add some more colors
}
我有一个 Android 应用程序的 Theme.qml:
BaseTheme {
palette: BaseTheme.Palette {
NewColor: "blue"
readonly property color androidColor: "#010101"
}
}
此外,我主要制作 ThemeToUse:
QQmlComponent qmlComponent(&engine, "path to AndroidTheme");
auto createdComponent = qmlComponent.create(context);
context->setContextProperty("themeContext", createdComponent);
在某处我听说这不是制作仅包含不同平台所需颜色的调色板的最佳方法。
所以问题是:是否有任何方法可以为不同的平台制作不同的调色板,以便我可以以这种形式访问它们的属性:Palette.SomeColor(不是 WinPalette.SomeColor 和 AndroidPalette.SomeColor)
顺便说一句。我很抱歉我的英语