如何在Qt中捕获Ctrl + Plus?

时间:2016-11-19 09:44:31

标签: c++ qt

如何在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键时,它没有做任何事情。

谢谢

1 个答案:

答案 0 :(得分:1)

经过一些调试后,我发现当在数字键盘上按下某个键时,Qt::KeypadModifier会被添加到事件修饰符中。所以简单的解决方案是将其添加到if语句中:

if (event->modifiers() == (Qt::ControlModifier | Qt::KeypadModifiers))
{
    // ...