Es sollte einfach sein, aber irgendwie funktioniert es nicht so, wie es sollte. Ich versuche, mit EventFilter Maustaste drücken oder auf QListWidget freigeben. ListWidget wurde unter UI vorbereitet. Ich habe diesesQT eventFilter mit MouseButtonRelease auf QListWidget erkennt keine Maus drücken/loslassen
ui->listWidget->installEventFilter(this);
event wie installiert Ich habe öffentlich in Header hinzugefügt:
bool eventFilter(QObject *obj, QEvent *event);
und erstellt unter 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);
}
Ich habe in der Dokumentation überprüft und es sagt, dass jedes Ereignis an eventHandler übergeben wird, bevor es an ein bestimmtes QWidget gesendet wird. Und es ist teilweise wahr. Weil KeyPress und ContextMenu funktioniert. Selbst wenn das Listen-Widget auf Blocksingals eingestellt war (true).
Das Problem ist, dass MouseButtonRelease/Press nicht funktioniert. Etwas blockiert es und ich weiß nicht, was oder wie es funktioniert. Ich habe on_listWidget_clicked auch, aber sogar loswerden es funktioniert immer noch nicht.
Bitte helfen. Dank
Super! Danke, dass es jetzt funktioniert :) – Pilot