Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Krow от Март 02, 2008, 11:29



Название: События окна.
Отправлено: Krow от Март 02, 2008, 11:29
В общем то вопрос думаю простой но ответа в ассстанте не смог найти, либо порСто не знал что посмотреть.
как можно отловить событие минимизации окна?


Название: Re: События окна.
Отправлено: uriel от Март 02, 2008, 11:57
Цитировать
void QWidget::hideEvent ( QHideEvent * event )   [virtual protected]
This event handler can be reimplemented in a subclass to receive widget hide events. The event is passed in the event parameter.
Hide events are sent to widgets immediately after they have been hidden.
Note: A widget receives spontaneous show and hide events when its mapping status is changed by the window system, e.g. a spontaneous hide event when the user minimizes the window, and a spontaneous show event when the window is restored again. After receiving a spontaneous hide event, a widget is still considered visible in the sense of isVisible().
See also visible, event(), and QHideEvent.


Название: Re: События окна.
Отправлено: Tonal от Март 02, 2008, 12:38
QHideEvent?


Название: Re: События окна.
Отправлено: uriel от Март 02, 2008, 13:07
Ну да, там же сказано, что если окно минимизируется, то выбрасывается hideEvent(), но виджет при этом считается видимым, что можно проверить через isVisible(). В случае же ручного вызова hide() isVisible() должно дать false.


Название: Re: События окна.
Отправлено: Dodge от Март 05, 2008, 12:43
я вижу 2 способа:
- переопределить hideEvent, в случае если ловим событие своего класса
- использовать installFilter, в случае если ловим событие чужого класса