按下数字和数字键时无法处理 Qt C++ 中的 QKeyEvent
can't handle QKeyEvent in Qt C++ when digit and number keys are pressed
我想在用户用户按下键盘键时做一些特定的事情。因为我在我的程序中有以下使用 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";
}
}
但是这段代码没有 work.but 这个代码有:-
void MyWindow::keyPressEvent(QKeyEvent *e)
{
if(e->key()== Qt::Key_Escape)
{
QApplication::exit(1);
std::cout << " presses\n";
}
}
为什么会这样?
将 qDebug() << e->key()
添加到方法的开头,看看您得到了什么:)。最有可能的是,window 未获取事件,但当前聚焦的小部件获取了事件。
我想在用户用户按下键盘键时做一些特定的事情。因为我在我的程序中有以下使用 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";
}
}
但是这段代码没有 work.but 这个代码有:-
void MyWindow::keyPressEvent(QKeyEvent *e)
{
if(e->key()== Qt::Key_Escape)
{
QApplication::exit(1);
std::cout << " presses\n";
}
}
为什么会这样?
将 qDebug() << e->key()
添加到方法的开头,看看您得到了什么:)。最有可能的是,window 未获取事件,但当前聚焦的小部件获取了事件。