它應該很簡單,但不知何故它不能正常工作。我試圖捕捉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