In the title:
protected:
bool eventFilter(QObject *obj, QEvent *event);
In the constructor:
qApp->installEventFilter(this);
Filter:
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::KeyPress)
{
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
qDebug() << "key " << keyEvent->key() << "from" << obj;
}
return QObject::eventFilter(obj, event);
}
With this event filter, you can catch all keystroke events and check who the emit ( obj) event is
:
if ( obj == ui->listWidget )
:
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::KeyPress)
{
if(obj == ui->listWidget)
{
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
if(keyEvent->key() == Qt::Key_Up)
qDebug() << "Up";
if(keyEvent->key() == Qt::Key_Down)
qDebug() << "Down";
}
}
return QObject::eventFilter(obj, event);
}