Событие перегрузки в QMainWindow блокирует все другие события

Я хочу обработать QEvent::WindowDeactivate, и для этого я перегружаю эту функцию в своем классе, производном от QMainWindow.

class MainWindow : public QMainWindow
....
bool event(QEvent * e); 
....
bool MainWindow::event(QEvent *e)
{
    if(e->type() == QEvent::WindowDeactivate){
        //do smth
    }
}

И после этого эта функция события начинает перехватывать все остальные события в моей программе. Все кнопки и виджеты в этом окне перестают реагировать на клики мышью, а также перехватываются события клавиатуры. Есть ли способ исправить это?


person 3dmodels    schedule 01.05.2018    source источник


Ответы (1)


Я решил проблему: пришлось добавить

return QWidget::event(e); 

в конце реализации мероприятия. И после этого - все работает нормально.

person 3dmodels    schedule 01.05.2018