Я написал этот кусок кода, но я получаю эту ошибку:Qt keyPressEvent Ошибка
"left of '->key' must point to class/struct/union/generic type".
Учитывая, что GUI является классом, производным от класса QWidget
, как я могу правильно поймать нажатие клавиши?
void GUI::keyPressEvent(QKeyEvent *event)
{
if (event->key()==Qt::Key_Up) {
//do something
}
}
The keyPressEvent
объявлен как это:
protected:
virtual void keyPressEvent(QKeyEvent *event);
Я бы предложил 'override', а не' Q_DECL_OVERRIDE', Qt 5.7 не строится на компиляторах, которые не поддерживают это ключевое слово. Я обычно предлагал Q_DECL_OVERRIDE до Qt 5.7, но теперь это не нужно. –
@KubaOber хороший пункт. В общем, 'Q_DECL_OVERRIDE' - это безопасная ставка для более старых версий тоже :), так как он не указал версию Qt, я пошел с безопасной ставкой, но скорректировал ее, чтобы упомянуть обоим путям сейчас. – deW1
Ой ... что, если я не могу включить эту библиотеку, потому что, видимо, ее не существует? – Ana