這裏是我的代碼:的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我試過了,它從來沒有進入該方法。 –