|
本帖最后由 qt_venus 于 2016-3-22 17:44 编辑
如题
环境:QT5.6 LTS版 + MINGW492
操作说明:
用QT Creator创建的ui界面,mainwindow中拖入一个maintoolbar,在maintoolbar上添加了几个action按钮,进行了事件注册于eventfilter重写,但就是不能进入eventfilter进行事件处理,另外,为了验证eventfilter是否OK, 后来注册maintoolbar的事件,这时候发现可以进入eventfilter。有遇到过的么?
mainwindow、maintoolbar、action的关系:mainwindow承载maintoolbar,maintoolbar承载action。怀疑action上面多了一层maintoolbar,导致使用this注册action时,事件无法跳过maintoolbar传递给mainwindow。
// install eventfilter
ui->mainToolBar->installEventFilter(this);
ui->action1->installEventFilter(this);
ui->action2->installEventFilter(this);
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if(obj == ui->mainToolBar) // 该事件能检测到
{
return false;
}
else if(obj == ui->action1) // 该事件检测不到,WHY??
{
return false;
}
else if(obj == ui->action2) //该事件检测不到,WHY??
{
return false;
}
else return QMainWindow::eventFilter(obj,event);
}
|
|