无法在按下数字和数字键时处理Qt C++中的QKey事件

can't handle QKeyEvent in Qt C++ when digit and number keys are pressed

本文关键字:数字 Qt 处理 C++ 中的 事件 QKey      更新时间:2023-10-16

当用户用户按下键盘键时,我想做一些特定的事情,因为我的程序中有以下代码,它使用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 << " pressesn";
}
}

但是这个代码剂量不起作用,但这个代码确实:-

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

为什么会这样?

qDebug() << e->key()添加到方法的开头,并准确查看您得到的:)。最有可能的是,窗口没有获取事件,但当前聚焦的小部件会获取事件。