Russian Qt Forum
Ноябрь 24, 2024, 18:25
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Событие перед переключением tab
Страниц: [
1
]
2
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Событие перед переключением tab (Прочитано 21014 раз)
cdsmika
Гость
Событие перед переключением tab
«
:
Октябрь 25, 2009, 00:04 »
Привет!
Не найду никак сигнал в QTabWidget, срабатывающий перед переключением закладки, для разрешения или запрещения перехода. Может кто подскажет, а???
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Событие перед переключением tab
«
Ответ #1 :
Октябрь 25, 2009, 02:17 »
для разрешения/запрещения можно делать вкладки неактивными (запрещёнными)
Записан
Юра.
cdsmika
Гость
Re: Событие перед переключением tab
«
Ответ #2 :
Октябрь 25, 2009, 11:41 »
Цитата: lit-uriy от Октябрь 25, 2009, 02:17
для разрешения/запрещения можно делать вкладки неактивными (запрещёнными)
Ну не. История такая: На закладке QTableView, соединенный с QSqlRelationalModel. Мне нужно перед переходом на другую закладку проверять изменились ли данные и предлагать эти изменения сохранить. Юзвер может и перейти на др. закладку не сохраняя данные, а может нажать "Отмена" и вообще отменить переход. (То бишь три кнопки: "Сохранить изменения?" "Да", "Нет", "Отмена")
Записан
spectre71
Гость
Re: Событие перед переключением tab
«
Ответ #3 :
Октябрь 25, 2009, 11:46 »
Цитата: cdsmika от Октябрь 25, 2009, 11:41
Цитата: lit-uriy от Октябрь 25, 2009, 02:17
для разрешения/запрещения можно делать вкладки неактивными (запрещёнными)
Ну не. История такая: На закладке QTableView, соединенный с QSqlRelationalModel. Мне нужно перед переходом на другую закладку проверять изменились ли данные и предлагать эти изменения сохранить. Юзвер может и перейти на др. закладку не сохраняя данные, а может нажать "Отмена" и вообще отменить переход. (То бишь три кнопки: "Сохранить изменения?" "Да", "Нет", "Отмена")
Попробуй повесить фильтр событий на свой QTabWidget
Записан
spectre71
Гость
Re: Событие перед переключением tab
«
Ответ #4 :
Октябрь 25, 2009, 11:53 »
Вернее на QTabBar у QTabWidget.
QTabBar * QTabWidget::tabBar () const
Записан
f0x
Гость
Re: Событие перед переключением tab
«
Ответ #5 :
Октябрь 25, 2009, 14:18 »
Держи в переменной индекс текущего таба и отлавливай сигнал изменения таба. Если нужно, возвращай юзера в таб с сохраненным ранее индексом.
Записан
cdsmika
Гость
Re: Событие перед переключением tab
«
Ответ #6 :
Октябрь 25, 2009, 18:08 »
Цитата: alFoX от Октябрь 25, 2009, 14:18
Держи в переменной индекс текущего таба и отлавливай сигнал изменения таба. Если нужно, возвращай юзера в таб с сохраненным ранее индексом.
Ну это ж кривизна. Этот сигнал срабатывает уже после инициализации нового таба, а это довольно долгий процесс (загрузка данных из БД). Почему в Qt события не подразделяются на до и после?
Записан
cdsmika
Гость
Re: Событие перед переключением tab
«
Ответ #7 :
Октябрь 25, 2009, 18:12 »
Цитата: Spectre от Октябрь 25, 2009, 11:53
Вернее на QTabBar у QTabWidget.
QTabBar * QTabWidget::tabBar () const
error: `QTabBar* QTabWidget::tabBar() const' is protected
Записан
f0x
Гость
Re: Событие перед переключением tab
«
Ответ #8 :
Октябрь 25, 2009, 18:18 »
Цитата: cdsmika от Октябрь 25, 2009, 18:08
Ну это ж кривизна. Этот сигнал срабатывает уже после инициализации нового таба,
а по какому событию у тебя инициализация? неужели нельзя сделать сначала проверку, а потом инициализировать если надо? А если не надо, вернуть юзера назад. По-моему все достаточно просто...
Записан
cdsmika
Гость
Re: Событие перед переключением tab
«
Ответ #9 :
Октябрь 25, 2009, 18:24 »
Цитата: alFoX от Октябрь 25, 2009, 18:18
Цитата: cdsmika от Октябрь 25, 2009, 18:08
Ну это ж кривизна. Этот сигнал срабатывает уже после инициализации нового таба,
а по какому событию у тебя инициализация? неужели нельзя сделать сначала проверку, а потом инициализировать если надо? А если не надо, вернуть юзера назад. По-моему все достаточно просто...
попробую
Записан
cdsmika
Гость
Re: Событие перед переключением tab
«
Ответ #10 :
Октябрь 25, 2009, 18:30 »
Цитата: alFoX от Октябрь 25, 2009, 18:18
Цитата: cdsmika от Октябрь 25, 2009, 18:08
Ну это ж кривизна. Этот сигнал срабатывает уже после инициализации нового таба,
а по какому событию у тебя инициализация? неужели нельзя сделать сначала проверку, а потом инициализировать если надо? А если не надо, вернуть юзера назад. По-моему все достаточно просто...
Кстати при таком раскладе виден переход на следующую закладку, после которого задается вопрос, а потом видна отмена - не есть гуд.
Записан
cdsmika
Гость
Re: Событие перед переключением tab
«
Ответ #11 :
Октябрь 25, 2009, 18:32 »
Цитата: Spectre от Октябрь 25, 2009, 11:53
Вернее на QTabBar у QTabWidget.
QTabBar * QTabWidget::tabBar () const
Есть пример использования?
Записан
kirill
Гость
Re: Событие перед переключением tab
«
Ответ #12 :
Октябрь 26, 2009, 06:18 »
Цитата: cdsmika от Октябрь 25, 2009, 18:32
Цитата: Spectre от Октябрь 25, 2009, 11:53
Вернее на QTabBar у QTabWidget.
QTabBar * QTabWidget::tabBar () const
Есть пример использования?
Раз протектед то наследуйся от QTabWidget
Записан
cdsmika
Гость
Re: Событие перед переключением tab
«
Ответ #13 :
Октябрь 26, 2009, 11:45 »
Цитата: Kirill от Октябрь 26, 2009, 06:18
Цитата: cdsmika от Октябрь 25, 2009, 18:32
Цитата: Spectre от Октябрь 25, 2009, 11:53
Вернее на QTabBar у QTabWidget.
QTabBar * QTabWidget::tabBar () const
Есть пример использования?
Раз протектед то наследуйся от QTabWidget
То бишь для реализации такой простой штуки мне нада еще и табвиджет переопределять?
Блин, короче понял одну истину - надо было все классы Qt наследовать перед тем как писать проект
Записан
cdsmika
Гость
Re: Событие перед переключением tab
«
Ответ #14 :
Октябрь 28, 2009, 09:18 »
Цитата: Kirill от Октябрь 26, 2009, 06:18
Цитата: cdsmika от Октябрь 25, 2009, 18:32
Цитата: Spectre от Октябрь 25, 2009, 11:53
Вернее на QTabBar у QTabWidget.
QTabBar * QTabWidget::tabBar () const
Есть пример использования?
Раз протектед то наследуйся от QTabWidget
Тогда в чем смысл installEventFilter, если можно все события перехватывать в наследнике?
Записан
Страниц: [
1
]
2
3
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...