• 4164阅读
  • 0回复

eventFilter 没有反应,急急急 [复制链接]

上一主题 下一主题
离线mavis_y83
 
只看楼主 倒序阅读 楼主  发表于: 2010-07-07
您好!请看如下代码:
bool ContactView::eventFilter(QObject *obj, QEvent *event)
{
    cout << "ContactView::eventFilter\n";
    if (obj == mCtcView)
    {cout << "obj == mCtcView\n";
        if (event->type() == QEvent::MouseButtonPress)
        {cout << "QEvent::MouseButtonPress!\n";
            QMouseEvent* mourseEvent = static_cast<QMouseEvent *>(event);
            if (mourseEvent->button() == Qt::RightButton)
            {cout << "RightButton release!\n";
                OpenCtcPopupMenu(mourseEvent->x(), mourseEvent->y());
                return true;
            }

        }
    }
    return QWidget::eventFilter(obj, event);
}

其中,mCtcView 是一个QTreeView,  并且是ContactView的成员,我在ContactView的构造函数中写入如下语句:mCtcView->installEventFilter(this); ,希望ContactView能够监视mCtcView的右键按下实践,但运行后发现,只有cout << "obj == mCtcView\n";输出,后面的cout都不输出。请问这是怎么回事?谢谢!
快速回复
限100 字节
 
上一个 下一个