它应该很简单,但不知何故它不能正常工作。我试图捕捉eventFilter鼠标按钮按下或释放QListWidget。 ListWidget是在UI下编写的。我已经安装了eventFilter这样QT eventFilter with MouseButtonRelease on QListWidget未检测到鼠标按下/释放
ui->listWidget->installEventFilter(this);
我在头下,增加市民:
bool eventFilter(QObject *obj, QEvent *event);
而创建的MainWindow
下bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::KeyPress)
{
qDebug() << "Keyboard press";
} else if (event->type() == QEvent::MouseButtonRelease) {
qDebug() << "Mouse press L";
} else if(event->type() == QEvent::ContextMenu) {
qDebug() << "Mouse press R";
}
return QObject::eventFilter(obj, event);
}
我的文档检查,这说在发送给给定的QWidget之前,每个事件都被传递给eventHandler。这部分是真的。因为KeyPress和ContextMenu正在工作。即使列表小部件被设置为blocksingals(true)。
问题是MouseButtonRelease/Press不起作用。有些东西阻止它,我不知道如何使它工作。 我也有on_listWidget_clicked,但即使摆脱它,它仍然无法正常工作。
请帮忙。由于
太棒了!感谢它的工作:) – Pilot