用C ++改变QML单例的属性

时间:2015-09-09 06:35:53

标签: c++ qt singleton qml qtquick2

我实现了一个简化的Ubuntu Touch-like调色板(不是每个元素调色板)。

有一个GlobalPaletteSetting单身人士:

pragma Singleton

import QtQuick 2.5

QtObject {
    property Palette current: NonePalette {}
}

以及一些调色板类,例如NonePaletteDark

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

怎么做?

0 个答案:

没有答案