Ошибка 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);

0

Решение

Вы должны включить

#include <QKeyEvent>

тогда он должен работать как задумано.


Помимо этого вы должны использовать Q_DECL_OVERRIDE макрос вроде:

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

Как упомянул @KubaOber, если вы используете компилятор C ++, поддерживающий> = C ++ 11, либо по умолчанию, либо путем активации его с помощью CONFIG += c++11 тогда вы можете использовать override ключевое слово вместо

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]