当按下数字和数字键时,无法在Qt C ++中处理QKeyEvent

时间:2018-05-08 13:33:46

标签: c++ qt event-handling qkeyevent

当用户用户按下键盘键时,我想做一些特定的事情。因为我的程序中有以下代码使用qt和C ++: -

//reimplemented keyPressEvent
// MyWindow inherits from QWidgets 
void MyWindow::keyPressEvent(QKeyEvent *e)
{
        if(e->key()== Qt::Key_3)
        {
              //do something
                QApplication::exit(1);
                std::cout << " presses\n";
        }
}

但是这段代码不起作用。但是这段代码确实: -

void MyWindow::keyPressEvent(QKeyEvent *e)
{
        if(e->key()== Qt::Key_Escape)
        {
                QApplication::exit(1);
                std::cout << " presses\n";
        }
 }

为什么会这样?

1 个答案:

答案 0 :(得分:1)

qDebug() << e->key()添加到方法的开头,看看你到底得到了什么:)。最有可能的是,窗口没有获取事件,但当前关注的窗口小部件确实如此。