Qt的:检测双击带有Modkey(Shift,Ctrl等)
-
20-09-2019 - |
题
我
如何能够检测一个QWidget双击是否(QStatusBar,在我的情况)而发生修饰键被按下?
我可以重载void QWidget::mouseDoubleClickEvent ( QMouseEvent * event )
拿到双击,但我怎么能确定小部件是否接收的关键事件时,它可能没有重点是什么?
解决方案
其他提示
如果你有你的(鼠标)事件或信号一个插槽,可以有测试修饰符:
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