QMainWindow 上的重载事件会阻止所有其他事件
Overloading event on QMainWindow blocks all other events
我想处理 QEvent::WindowDeactivate,为此我在派生的 QMainWindow 上重载了这个函数 class。
class MainWindow : public QMainWindow
....
bool event(QEvent * e);
....
bool MainWindow::event(QEvent *e)
{
if(e->type() == QEvent::WindowDeactivate){
//do smth
}
}
然后,这个事件函数开始拦截我程序中的所有其他事件。此 window 中的所有按钮和小部件都停止对鼠标单击做出反应,并且键盘事件也被拦截。有没有办法来解决这个问题?
我解决了问题:必须添加
return QWidget::event(e);
在活动实施结束时。之后 - 一切正常。
我想处理 QEvent::WindowDeactivate,为此我在派生的 QMainWindow 上重载了这个函数 class。
class MainWindow : public QMainWindow
....
bool event(QEvent * e);
....
bool MainWindow::event(QEvent *e)
{
if(e->type() == QEvent::WindowDeactivate){
//do smth
}
}
然后,这个事件函数开始拦截我程序中的所有其他事件。此 window 中的所有按钮和小部件都停止对鼠标单击做出反应,并且键盘事件也被拦截。有没有办法来解决这个问题?
我解决了问题:必须添加
return QWidget::event(e);
在活动实施结束时。之后 - 一切正常。