• 3784阅读
  • 0回复

[提问]工具栏中的action按钮无法响应事件  不能进入eventfilter进行相应处理 [复制链接]

上一主题 下一主题
离线venus
 

只看楼主 正序阅读 楼主  发表于: 2016-03-22
如题
环境: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);
}
Hello,World!
快速回复
限100 字节
 
上一个 下一个