Ошибка Qt keyPressEvent
Я написал этот кусок кода, но я получаю эту ошибку:
msgstr "слева от '-> ключ' должен указывать на класс / структуру / объединение / универсальный тип".
Учитывая, что GUI является классом, производным от QWidget
класс, как я могу правильно поймать нажатие клавиши?
void GUI::keyPressEvent(QKeyEvent *event)
{
if (event->key()==Qt::Key_Up) {
//do something
}
}
keyPressEvent
объявлен так:
protected:
virtual void keyPressEvent(QKeyEvent *event);
1 ответ
Решение
Вы должны включить
#include <QKeyEvent>
тогда он должен работать как задумано.
Помимо этого вы должны использовать Q_DECL_OVERRIDE
макрос вроде:
protected:
virtual void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
Как упомянул @KubaOber, если вы используете компилятор C++, поддерживающий>=C++11, либо по умолчанию, либо путем активации его с помощью CONFIG += c++11
тогда вы можете использовать override
ключевое слово вместо