如何在 QWidget::keyPressEvent
中捕获 Ctrl++?
这是我当前的代码(已简化):
void foo::keyPressEvent(QKeyEvent *event)
{
if (event->modifiers() == Qt::ControlModifier)
{
switch (event->key())
{
case Qt::Key_Plus:
// do something
break;
}
}
}
有效,但仅适用于键盘字母数字部分的 +。当我在数字键盘上按 Ctrl++ 时,它没有执行任何操作。
谢谢
最佳答案
经过一些调试后,我发现当按下数字键盘上的某个键时,Qt::KeypadModifier
被添加到事件修饰符中。所以简单的解决方案是将其添加到 if 语句中:
if (event->modifiers() == (Qt::ControlModifier | Qt::KeypadModifiers))
{
// ...
关于c++ - 如何在 Qt 中捕获 Ctrl+Plus?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40691389/