0

我写了这段代码,但我得到了这个错误:

“'->key' 的左侧必须指向类/结构/联合/通用类型”。

考虑到 GUI 是从类派生的QWidget类,我怎样才能正确地捕捉到按键的按下?

void GUI::keyPressEvent(QKeyEvent *event)
{
    if (event->key()==Qt::Key_Up) {
        //do something
    }
}

keyPressEvent声明如下:

protected:    
    virtual void keyPressEvent(QKeyEvent *event);
4

1 回答 1

1

你必须包括

#include <QKeyEvent>

那么它应该按预期工作。


除此之外,您应该使用如下Q_DECL_OVERRIDE宏:

protected:    
    virtual void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;

正如@KubaOber 提到的,如果您使用支持 >=C++11 的 C++ 编译器,无论是默认情况下还是通过激活它,CONFIG += c++11您都可以使用override关键字。

于 2016-10-05T15:49:58.063 回答