如何检测在按住修饰键时是否双击 QWidget(在我的情况下为 QStatusBar)?
我可以重载void QWidget::mouseDoubleClickEvent ( QMouseEvent * event )
以获得双击,但是当小部件可能没有焦点时,我如何确定它是否接收到关键事件?
如何检测在按住修饰键时是否双击 QWidget(在我的情况下为 QStatusBar)?
我可以重载void QWidget::mouseDoubleClickEvent ( QMouseEvent * event )
以获得双击,但是当小部件可能没有焦点时,我如何确定它是否接收到关键事件?
如果您的(鼠标)事件或信号有一个 SLOT,您可以在那里测试修饰符:
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);
干杯