QMainWindow上的重载事件会阻止所有其他事件

时间:2018-05-01 06:02:24

标签: qmainwindow qevent

我想处理QEvent :: WindowDeactivate,为此我在我的QMainWindow derieved类上重载了这个函数。

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

之后,此事件函数开始拦截程序中的所有其他事件。此窗口中的所有按钮和小部件都会停止对鼠标单击作出反应,并且还会拦截键盘事件。有没有办法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

我解决了问题:不得不添加

return QWidget::event(e); 

在事件实施结束时。之后 - 一切正常。