这里是我的代码:的QMainWindow :: keyReleaseEvent不能按预期工作
.h文件中
class MyMainWindow : public QMainWindow
{
...
protected:
virtual void keyPressEvent(QKeyEvent *event);
virtual void keyReleaseEvent(QKeyEvent *event);
private:
bool _altKeyDown;
...
}
.cpp文件
void MyMainWindow::keyPressEvent(QKeyEvent *event) {
if(event->key() == Qt::Key_Alt) {
_altKeyDown = true;
}
}
void MyMainWindow::keyReleaseEvent(QKeyEvent *event) {
if(getenv("DEBUG_MODE")) qDebug() << "keyReleaseEvent fired";
if(event->key() == Qt::Key_Alt) {
_altKeyDown = false;
}
}
的keyPressEvent
函数被调用每次我按一个键,但是当我释放该键时,不会调用keyReleaseEvent
。我想念什么?
您是否尝试过调试,以确保你没有进入这个方法(在设置一个破发点?函数的第一行) –
你的表单中有MainMenu吗?它会影响行为。 – deepmax
@VahidNateghi我试过了,它从来没有进入该方法。 –