我写了这段代码,但是我收到了这个错误:
“左边的' - > key'必须指向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);
答案 0 :(得分:1)
你必须包括
#include <QKeyEvent>
然后它应该按预期工作。
除此之外,您应该使用Q_DECL_OVERRIDE
宏,如:
protected:
virtual void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
正如@KubaOber所提到的,如果您默认使用支持&gt; = C ++ 11的C ++编译器,或者使用CONFIG += c++11
激活它,那么您可以使用override
关键字。< / p>