如何在QWidget::keyPressEvent
中捕获Ctrl + Plus?
这是我目前的代码(简化):
void foo::keyPressEvent(QKeyEvent *event)
{
if (event->modifiers() == Qt::ControlModifier)
{
switch (event->key())
{
case Qt::Key_Plus:
// do something
break;
}
}
}
哪个有效,但仅适用于"加"键盘上的字母数字部分。当我按下数字键盘上的Ctrl + Plus键时,它没有做任何事情。
谢谢
答案 0 :(得分:1)
经过一些调试后,我发现当在数字键盘上按下某个键时,Qt::KeypadModifier
会被添加到事件修饰符中。所以简单的解决方案是将其添加到if语句中:
if (event->modifiers() == (Qt::ControlModifier | Qt::KeypadModifiers))
{
// ...