문제

수정 자 키가 고정되어있는 동안 QWIDGET (QSTATUSBAR, 내 경우 QSTATUSBAR)의 두 번 클릭 여부를 어떻게 감지 할 수 있습니까?

과부하 할 수 있습니다 void QWidget::mouseDoubleClickEvent ( QMouseEvent * event ) 더블 클릭을 얻으려면 위젯이 초점이 맞지 않을 때 위젯이 주요 이벤트를 수신하는지 어떻게 확신 할 수 있습니까?

도움이 되었습니까?

해결책

답을 찾았습니다.

QMouseEvent 파생됩니다 QInputEvent 그리고 그것은 이름이라는 방법이 있습니다 modifiers():

로부터 QT 문서:

이벤트가 발생하기 직전에 존재했던 키보드 수정 자 플래그를 반환합니다.

다른 팁

(마우스) 이벤트 또는 신호 용 슬롯이있는 경우 여기에서 수정자를 테스트 할 수 있습니다.

Qt::KeyboardModifiers modifiers  = QApplication::queryKeyboardModifiers ();
if(modifiers.testFlag( Qt::ControlModifier )){
  qDebug() << "CTRL was hold when this function was called";
}
else{
  qDebug() << "CTRL wasn't hold";
}

//SHIFT    = Qt::ShiftModifier
//CTRL     = Qt::ControlModifier
//ALT      = Qt::AltModifier 

Qwidget에 더 많은 정보를 추가하려면이 방법을 무시하면됩니다.

protected:
    void mouseDoubleClickEvent(QMouseEvent *event);

건배

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