Я играю с некоторой графикой, и я реализовал простое движение камеры с помощью клавиш со стрелками.Мой первый подход состоял в том, чтобы переопределить keyPressEvent
, чтобы сделать что-то вроде этого:
switch(key)
{
case up: MoveCameraForward(step); break;
case left: MoveCameraLeft(step); break;
...
}
Это не сработает так, как хотелось бы.Когда я нажимаю и удерживаю, например, клавишу «вперед», камера перемещает «шаговые» единицы вперед, затем на некоторое время останавливается, а затем продолжает движение.Я предполагаю, что именно так генерируется событие, чтобы избежать нескольких событий в случае немного длинного нажатия клавиши.
Итак, мне нужно опросить клавиатуру в моей подпрограмме Paint()
.Я не нашел, как это сделать с Qt.Я думал о map<Key, bool>
, который будет обновлен в keyPressEvent
и keyReleaseEvent
и опросить эту карту в Paint()
.Есть идеи получше?Спасибо за любые идеи.