我写了这段代码,但是出现了这个错误:


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


考虑到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 ++编译器支持> = C ++ 11或通过CONFIG += c++11激活它,则可以使用override关键字。

关于c++ - Qt keyPressEvent错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39878321/

10-09 08:26