您可以install an event filter到listwidget的视角构件,这样的事情:
listWidget->viewport()->installEventFilter(this); // "this" could be your window object.
在为QEvent::MouseButtonDblClick
事件eventFilter方法检查:
bool YourWindowClass::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::MouseButtonDblClick)
{
QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
qDebug("Mouse double click %d %d", mouseEvent->x(), mouseEvent->y());
return true;
}
else
{
return QMainWindow::eventFilter(obj, event);
}
}
我希望这有助于。
感谢这个,我只想补充一点,因为我有多个QListWidgets来检查,我也必须检查obj。但是由于QListWiget的视口是生成事件的,所以实际上你需要检查obj-> parent()对应你的QListWidget来发现哪个被双击。 – 2011-03-29 13:29:25