您好!请看如下代码:
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都不输出。请问这是怎么回事?谢谢!