Название: [РЕШЕНО] Как перехватить потерю\появление фокуса в QMdiSubWindow? Отправлено: NOX86 от Март 07, 2010, 05:30 Есть класс Document, отнаследованый от QMdiSubWindow, который совершает некоторые действия при появлении\потере фокуса. Класс Document наследуется инными класами так же, причём они устанавливают виджет(ы) для QMdiSubWindow;
То есть: (Потомки) <- Document <- QMdiSubWindow Хотелось бы весь функционал относящийся к появлению\потере фокуса реализовать в классе Document Проблема состоит в том, что 1. QMdiSubWindow в режиме табов не посылает событий изменений фокуса (QFocusEvent). 2. Я точно не знаю какой будет верхний виджет после последнего наследования. Как перехватить потерю\появление фокуса, преключения между табами\окнами в QMdiSubWindow? Хочу обратить внимание, что мне надо отлавливать как появление так и _потерю_ фокуса. Название: Re: Как перехватить потерю\появление фокуса в QMdiSubWindow? Отправлено: NOX86 от Март 16, 2010, 20:48 В моём случае помогло отлавливание состояния окна (http://doc.trolltech.com/4.6/qt.html#WindowState-enum)
А именно Qt::WindowNoState и Qt::WindowActive Сделать это можно при помощи сигнала windowStateChanged(Qt::WindowStates,Qt::WindowStates) (http://doc.trolltech.com/4.6/qmdisubwindow.html#windowStateChanged) или отлавливая QWindowStateChangeEvent (http://doc.trolltech.com/4.6/qwindowstatechangeevent.html) событие |