Russian Qt Forum
Октябрь 01, 2024, 10:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Событие перед переключением tab  (Прочитано 20810 раз)
cdsmika
Гость
« : Октябрь 25, 2009, 00:04 »

Привет!
Не найду никак сигнал в QTabWidget, срабатывающий перед переключением закладки, для разрешения или запрещения перехода. Может кто подскажет, а???
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Октябрь 25, 2009, 02:17 »

для разрешения/запрещения можно делать вкладки неактивными (запрещёнными)
Записан

Юра.
cdsmika
Гость
« Ответ #2 : Октябрь 25, 2009, 11:41 »

для разрешения/запрещения можно делать вкладки неактивными (запрещёнными)
Ну не. История такая: На закладке QTableView, соединенный с QSqlRelationalModel. Мне нужно перед переходом на другую закладку проверять изменились ли данные и предлагать эти изменения сохранить. Юзвер может и перейти на др. закладку не сохраняя данные, а может нажать "Отмена" и вообще отменить переход. (То бишь три кнопки: "Сохранить изменения?" "Да", "Нет", "Отмена")
Записан
spectre71
Гость
« Ответ #3 : Октябрь 25, 2009, 11:46 »

для разрешения/запрещения можно делать вкладки неактивными (запрещёнными)
Ну не. История такая: На закладке QTableView, соединенный с QSqlRelationalModel. Мне нужно перед переходом на другую закладку проверять изменились ли данные и предлагать эти изменения сохранить. Юзвер может и перейти на др. закладку не сохраняя данные, а может нажать "Отмена" и вообще отменить переход. (То бишь три кнопки: "Сохранить изменения?" "Да", "Нет", "Отмена")

Попробуй повесить фильтр событий на свой QTabWidget
Записан
spectre71
Гость
« Ответ #4 : Октябрь 25, 2009, 11:53 »

Вернее на QTabBar у QTabWidget.
QTabBar * QTabWidget::tabBar () const
Записан
f0x
Гость
« Ответ #5 : Октябрь 25, 2009, 14:18 »

Держи в переменной индекс текущего таба и отлавливай сигнал изменения таба. Если нужно, возвращай юзера в таб с сохраненным ранее индексом.
Записан
cdsmika
Гость
« Ответ #6 : Октябрь 25, 2009, 18:08 »

Держи в переменной индекс текущего таба и отлавливай сигнал изменения таба. Если нужно, возвращай юзера в таб с сохраненным ранее индексом.
Ну это ж кривизна. Этот сигнал срабатывает уже после инициализации нового таба, а это довольно долгий процесс (загрузка данных из БД). Почему в Qt события не подразделяются на до и после?
Записан
cdsmika
Гость
« Ответ #7 : Октябрь 25, 2009, 18:12 »

Вернее на QTabBar у QTabWidget.
QTabBar * QTabWidget::tabBar () const

error: `QTabBar* QTabWidget::tabBar() const' is protected
Записан
f0x
Гость
« Ответ #8 : Октябрь 25, 2009, 18:18 »

Ну это ж кривизна. Этот сигнал срабатывает уже после инициализации нового таба,
а по какому событию у тебя инициализация? неужели нельзя сделать сначала проверку, а потом инициализировать если надо? А если не надо, вернуть юзера назад. По-моему все достаточно просто...
Записан
cdsmika
Гость
« Ответ #9 : Октябрь 25, 2009, 18:24 »

Ну это ж кривизна. Этот сигнал срабатывает уже после инициализации нового таба,
а по какому событию у тебя инициализация? неужели нельзя сделать сначала проверку, а потом инициализировать если надо? А если не надо, вернуть юзера назад. По-моему все достаточно просто...
попробую
Записан
cdsmika
Гость
« Ответ #10 : Октябрь 25, 2009, 18:30 »

Ну это ж кривизна. Этот сигнал срабатывает уже после инициализации нового таба,
а по какому событию у тебя инициализация? неужели нельзя сделать сначала проверку, а потом инициализировать если надо? А если не надо, вернуть юзера назад. По-моему все достаточно просто...

Кстати при таком раскладе виден переход на следующую закладку, после которого задается вопрос, а потом видна отмена - не есть гуд.
Записан
cdsmika
Гость
« Ответ #11 : Октябрь 25, 2009, 18:32 »

Вернее на QTabBar у QTabWidget.
QTabBar * QTabWidget::tabBar () const

Есть пример использования?
Записан
kirill
Гость
« Ответ #12 : Октябрь 26, 2009, 06:18 »

Вернее на QTabBar у QTabWidget.
QTabBar * QTabWidget::tabBar () const

Есть пример использования?

Раз протектед то наследуйся от QTabWidget
Записан
cdsmika
Гость
« Ответ #13 : Октябрь 26, 2009, 11:45 »

Вернее на QTabBar у QTabWidget.
QTabBar * QTabWidget::tabBar () const

Есть пример использования?

Раз протектед то наследуйся от QTabWidget
То бишь для реализации такой простой штуки мне нада еще и табвиджет переопределять?
Блин, короче понял одну истину - надо было все классы Qt наследовать перед тем как писать проект  Грустный
Записан
cdsmika
Гость
« Ответ #14 : Октябрь 28, 2009, 09:18 »

Вернее на QTabBar у QTabWidget.
QTabBar * QTabWidget::tabBar () const

Есть пример использования?

Раз протектед то наследуйся от QTabWidget
Тогда в чем смысл installEventFilter, если можно все события перехватывать в наследнике?
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.134 секунд. Запросов: 23.