![]() |
|
|
![]()
|
|
| daemonaz |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
Приветствую!
Имеется диалоговое окно, в нем разместил QDialogButtonBox (ok, cancel, apply), StackedWidget и ListWidget. В ListWidget содержится список меню настроек, при выделении пункта сменяется страница на StackedWidget. Мне надо сделать так, чтобы кнопки QDialogButtonBox работали на текущий виджет, а не на все виджеты, которые имеются в StackedWidget. например, сохранить пр нажатии кнопки Apply параметры настройки, которых были изменены в текущем виджете. На ум приходит мысль соединить сигналы кнопок с слотами текущего виджета, а при переключении виджетов связи сигналы-слоты удалить (как удалить с предыдущим виджетом связь?), или текущему виджету передать указатель на кнопки, а там его обрабатывать, при выходе из виджета кнопки восстановить в исходное состояние и обнулить указатель. Мне нужен совет и рекомендации как целесообразно реализовать диалоговое окно со StackWidget'ом и общей группой кнопок QDialogButtonBox. |
|||
|
||||
| Amp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
Я бы у каждого виджета в StackWidget завел по методам Save и Load (скорее всего выделил бы их в некий интерфейс, например SettingsPage). И в обработчике Apply и Ok вызывал Save у текущего виджета, а при активации Load. Еще хорошо бы реализовать метод IsChanged, который бы возвращал true в случае, если какие-то настройки были изменены пользователем на странице. Тогда при переключении страниц у пользователя можно было бы спросить о том хочет ли он сохранить настройки с предыдущей открытой вкладки или нет. Плюс кнопку Apply можно делать доступной только когда IsChanged у текущей вкладки вернул true.
|
|||
|
||||
| daemonaz |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 160 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
Amp, мысль я понял, спасибо большое!
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |