QT : Modkey (Shift, Ctrl 등)로 이중 클릭 감지
-
20-09-2019 - |
문제
수정 자 키가 고정되어있는 동안 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);
건배
제휴하지 않습니다 StackOverflow