如何在Qt中单击鼠标检测修改键

tfl*_*tfl 29 qt

我有一个,QTableWidget并希望按下CTRL,而单击列标题标记整列.获取列索引不是问题,因为有一个sectionPressed信号,它给我单击列的当前索引.单击列时,如何获取任何键盘修饰符的状态?

小智 33

尝试始终可用的QApplication :: keyboardModifiers()

在Qt 5上,尝试QGuiApplication :: keyboardModifiers().

  • 现在我偶然发现了这个答案!在我将所有内容重写为一个凌乱的子类之后,我就可以得到 `event` 对象了 :-) 天啊! (2认同)

Fra*_*čik 8

键盘修饰键的状态可以通过调用从QInputEvent继承的modifiers()函数找到.

http://doc.qt.io/qt-5/qmouseevent.html


Mar*_*lle 8

您可以使用__CODE__哪个更简单:

if(QGuiApplication::keyboardModifiers().testFlag(Qt::ControlModifier)) {
    // Do a few things
}
Run Code Online (Sandbox Code Playgroud)