我写了这段代码,但是我得到了这个错误:
"left of '->key' must point to class/struct/union/generic type".
考虑到 GUI 是从 QWidget
类派生的类,我如何才能正确地捕捉到按键的按下?
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
改为关键字。
关于c++ - Qt keyPressEvent 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39878321/