LINUX.ORG.RU

qml Settings сохранить перед выходом

 ,


0

1

Нужно перед выходом из приложения сохранить кое-какие настройки. Если упростить то код примерно такой:

import QtQuick 2.5
import Qt.labs.settings 1.0

ApplicationWindow {
    visible: true

    Settings {
        id: test
        category: "test"
        property string test
    }

    onClosing: {
        console.log("close");
        test.test = "test2"
    }


}

Почему в файле настроек не появляется новое значение? Если добавить в форму кнопку, по нажатию на которую задавать значение test.test = «test2» , тогда все нормально сохраняется.

Очевидно же, что Settings удаляется при разрушении ApplicationWindow. В onClosing добавь close.accepted = false и сохрани свои настройки. После этого подумай как сделать так, чтобы окно закрылось.

fluorite ★★★★★
()
Ответ на: комментарий от fluorite

подскажи пожалуйста как?

У меня получилось только с помощью таймера с задержкой пол секунды... Но это же как-то костыльно...

user0228
() автор топика
Ответ на: комментарий от user0228

Ну правильно, т.к. qml Settings сам костыльный, см. http://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/imports/settings/qqmlset..., там твоя задержка в полсекунды в код вшита. Я вроде года два назад свою qml-обёртку над QSettings писал, скинуть не могу, сорцов нет уже.

fluorite ★★★★★
()

Почему не сохранять настройки в момент их изменения?

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