LINUX.ORG.RU

[Qt] Состояние кнопки Apply в настройках

 


0

1

Привет,
Как лучше управлять состоянием кнопки Apply в диалоге настройки?
Сейчас хочу реализовать такое решение: проверять текущее и предыдущее состояние каждого виджета
и на основе этого сравнения делать соответственно setEnable(true/false).
Есть лучшее решение для этого?

Нашёл в кедах вот это: http://api.kde.org/3.5-api/kdelibs-apidocs/kdecore/html/classKConfigSkeleton....
Есть ли что-либо подобное в Qt?

★★★★★
Ответ на: комментарий от anonymous

Вешать виджету сигнал на изменение содержимого?

Каждому?
В принципе это и собирался сделать, просто хотел узнать, может mapping какой есть для этого..

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

>Каждому?

Ну да. Имхо это лучше, чем периодически бегать по всем виджетам и проверять их. Навешивание сигнала можно как-нибудь автоматизировать, это от твоего конкретного приложения зависит.

В принципе это и собирался сделать, просто хотел узнать, может mapping какой есть для этого..

Вроде нету.

anonymous
()
Ответ на: комментарий от UVV

> Каждому?

заести QBitArray, каждому параметру назначить бит, который устанавливать «1» при изменённом значении и «0» при совпадении с оригинальным. при любом изменении вызывать setEnable() по QBitArray::count(true) != 0.

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

Ну оно конечно да, но в коде выглядеть будет не сильно хорошо..
Да.. в кедах конечно это реализовано красиво, я пока сделал так же, как и собирался.

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

Для однотипных виджетов можно использовать код вроде этого:

foreach (QCheckBox* cb, dialog->findChildren<QCheckBox*>())
    connect(cb, SIGNAL(clicked()), dialog, SLOT(setChanged()));
wmd
()
Ответ на: комментарий от UVV

в кедах конечно это реализовано красиво

в кедах это реализовано точно так же, навешиванием сигнала на каждый виджет

KConfigSkeleton - это что-то типа QSettings, при чем он тут вообще?

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