LINUX.ORG.RU

Связь QSettings и QML Settings

 ,


1

2

Всем привет! В qt в c++ есть QSettings а в qml Settings.

qml:

    Settings {
        id: settings
        category: "main"
        property string str: ""
    }

c++:

...
QSettings settings;
settings.setValue("main/str", "value");

...

После выполнения приведенного кода на плюсах значение settings.str в qml не изменяется. Вопрос: как это исправить?



Последнее исправление: user0228 (всего исправлений: 1)

А оно должно? Вроде бы суть этой штуки - чтобы оно после рестарта проги подхватило последнее значение.

wolph ★★
()

Вопрос: как это исправить?

Делай в крестах в классе полноценное Q_PROPERTY с нотифай-сигналом, в qml делай на это свойство алиас с сеттингсами. И в крестах меняешь это свойство. Ну или «метаобъектно» через setProperty, либо напрямую через сеттер.

wolph ★★
()

Никак, читай документацию.

The current implementation is based on QSettings. This imposes certain limitations, such as missing change notifications. Writing a setting value using one instance of Settings does not update the value in another Settings instance, even if they are referring to the same setting in the same category.

Пиши свой класс с реализацией notify сигнала.

fluorite ★★★★★
()

Note: This type is made available by importing the Qt.labs.settings module. Types in the Qt.labs module are not guaranteed to remain compatible in future versions.

ИМХО экспериментальная фича. Если доступ к settings нужен из C++ то лучше там их загружать/сохранять

siberianwall
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.