下面是Theme.qml的实现
pragma Singleton
import QtQuick 2.12
import QtGraphicalEffects 1.15
QtObject {
readonly property Color color: Color{}
readonly property FontConfig font: FontConfig{}
//Gradual change
readonly property real primaryGradientPositionStart: 0.0
readonly property real primaryGradientPositionEnd: 1.0
readonly property color primaryGradientColorStart: "#4F5354"
readonly property color primaryGradientColorEnd: "#2E2E2E"
}
还要创建一个qmldir文件
module Theme
singleton Theme 1.0 Theme.qml
Theme.qml中可以添加颜色,字体,list,界面的风格由Theme统一管理,上述文件中的Color和FontConfig 是一个单独的文件,用于管理Color,和 Font的风格,
QML中加载主题
cmake方式
在CMakeLists.txt中添加如下代码
list(APPEND QML_DIRS "import/Theme")
set(QML_IMPORT_PATH "${QML_DIRS}" CACHE STRING "Qt Creator 4.1 extra qml import paths")