Я написал этот кусок кода, но я получаю эту ошибку:
msgstr «слева от ‘-> ключ’ должен указывать на класс / структуру / объединение / универсальный тип».
Учитывая, что 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
ключевое слово вместо
Других решений пока нет …