【问题标题】:Overloading event on QMainWindow blocks all other eventsQMainWindow 上的重载事件会阻止所有其他事件
【发布时间】:2018-10-11 05:27:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: qmainwindow qevent


    【解决方案1】:

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

    return QWidget::event(e); 
    

    在事件执行结束时。在那之后 - 一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      相关资源
      最近更新 更多