我实现了一个简化的Ubuntu Touch-like调色板(不是每个元素调色板)。
有一个GlobalPaletteSetting
单身人士:
pragma Singleton
import QtQuick 2.5
QtObject {
property Palette current: NonePalette {}
}
以及一些调色板类,例如NonePalette
或Dark
:
Palette {
normal: PaletteValues {
background: "white"
backgroundText: "black"
base: "white"
baseText: "black"
foreground: "white"
foregroundText: "black"
overlay: "white"
overlayText: "black"
field: "white"
fieldText: "black"
selection: "pink"
}
}
因此,可以在QML中更改全局调色板:
import "Customization/Palettes/Dark"
//...
DarkPalette {
id: dark
}
Component.onCompleted: {
GlobalPaletteSetting.current = dark
}
我想通过设置环境变量来设置全局调色板。就像QtQuick风格一样。
因此,需要从C ++访问GlobalPaletteSetting
。还有一种方法可以使用调色板加载QML文件并设置GlobalPaletteSetting.current
。
怎么做?