В объявлении класса добавляешь метод
bool eventFilter(QObject *, QEvent *);
Для списка устанавливаешь этот фильтр где-то в конструкторе класса:
ui->listWidget->viewport()->installEventFilter(this);
реализуешь сам фильтр например так:
bool класс::eventFilter(QObject *obj, QEvent *event)
{
QListWidget *lw = (QListWidget*)(obj);
if(lw)
{ if(event->type()==QEvent::MouseButtonPress)
{ QMouseEvent *me = (QMouseEvent*)event;
if(me->button()==Qt::LeftButton)
{ QMessageBox::about(this,"filter","I catch left click");
}
}
}
return QWidget::eventFilter( obj, event );
}