문제

나는 QListWidget 에는 대화 상자가 원하는 무언가를 하는(예를 들어,열 QFileDialog window)사용자를 더블 클릭 QListWidget.불행하게도, void doubleClicked (const QModelIndex & index) 만이 불을 때가 있고 항목 목록에 있습니다.

그것은 가능한 위젯을 신를 때마다 두 번 클릭하여 이벤트가 수신되면,어디에서나요?또는 다른 접근 방식이 필요합니까?

도움이 되었습니까?

해결책

이벤트 필터 설치 listwidget의 뷰포트에위젯, 이와 같은 것 :

listWidget->viewport()->installEventFilter(this); // "this" could be your window object.
.

eventFilter 메소드에서 QEvent::MouseButtonDblClick 이벤트를 확인합니다.

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);
    }
}
.

이 도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top