crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Запретить скрытие окна верхнего уровня, (без наследования)
hoRUS
  опции профиля:
сообщение 5.4.2012, 14:58
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 30
Регистрация: 10.7.2008
Из: Москва
Пользователь №: 231

Спасибо сказали: 5 раз(а)




Репутация:   0  


Можно ли как-нибудь запретить скрытие окна верхнего уровня (когда откуда-нибудь вызывается метод hide() или setVisible(false)), не наследуя класс окна и не переопределяя в вирт. функцию setVisible(bool) ?
Хотелось бы реализовать это с помощью фильтра событий... Но, к сожалению, событие QHideEvent высылается, когда окно уже скрыто.

P.S. Исходная задача - анимировать появление/скрытие различных окон.

Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
hoRUS
  опции профиля:
сообщение 6.4.2012, 12:17
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 30
Регистрация: 10.7.2008
Из: Москва
Пользователь №: 231

Спасибо сказали: 5 раз(а)




Репутация:   0  


Цитата(ilyabvt @ 5.4.2012, 20:14) *
Если вы имели ввиду сворачивание/разворачивание окна

Да нет, хотелось бы перехватывать и обрабатывать по-своему именно неспонтанные события скрытия (hide) именно ДО того, как окно реально скроется. Т.е. те скрытия, которые явно программно вызываются с помощью hide() или setVisible(false). Причем неважно, откуда эти вызовы делались - из своего кода или из недр Qt.
Но, видимо, без наследования тут не обойтись. Пока решил проблему, заключив необходимую функциональность максимально в отдельный класс и передав объект этого класса во владение окну, скрытие кот. нужно анимировать. В вирт. ф-ции setVisible() анимируемого окна вызываю нужные методы этого отдельного класса. Это имхо лучше, чем копипастить код в разные классы окон верхнего уровня, главные окна и диалоги, но решение с фильтром событий было бы элегантнее...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 9.12.2024, 13:06