Qt keyPressEvent 错误
Qt keyPressEvent Error
我写了这段代码,但是我得到了这个错误:
"left of '->key' must point to class/struct/union/generic type".
考虑到 GUI 是从 QWidget
class 派生的 class,我怎样才能正确地捕捉到按键的按下?
void GUI::keyPressEvent(QKeyEvent *event)
{
if (event->key()==Qt::Key_Up) {
//do something
}
}
keyPressEvent
声明如下:
protected:
virtual void keyPressEvent(QKeyEvent *event);
你必须包括
#include <QKeyEvent>
然后它应该按预期工作。
除此之外,您应该使用 Q_DECL_OVERRIDE
宏,例如:
protected:
virtual void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
正如@KubaOber 提到的,如果您使用默认支持 >=C++11 的 C++ 编译器,或者您使用 CONFIG += c++11
激活它,那么您可以使用 override
关键字。
我写了这段代码,但是我得到了这个错误:
"left of '->key' must point to class/struct/union/generic type".
考虑到 GUI 是从 QWidget
class 派生的 class,我怎样才能正确地捕捉到按键的按下?
void GUI::keyPressEvent(QKeyEvent *event)
{
if (event->key()==Qt::Key_Up) {
//do something
}
}
keyPressEvent
声明如下:
protected:
virtual void keyPressEvent(QKeyEvent *event);
你必须包括
#include <QKeyEvent>
然后它应该按预期工作。
除此之外,您应该使用 Q_DECL_OVERRIDE
宏,例如:
protected:
virtual void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
正如@KubaOber 提到的,如果您使用默认支持 >=C++11 的 C++ 编译器,或者您使用 CONFIG += c++11
激活它,那么您可以使用 override
关键字。