【发布时间】:2011-09-12 22:13:33
【问题描述】:
我正在玩一些图形,并且我已经用箭头键实现了简单的相机移动。我的第一种方法是覆盖keyPressEvent 来做这样的事情:
switch(key)
{
case up: MoveCameraForward(step); break;
case left: MoveCameraLeft(step); break;
...
}
这不像我希望的那样工作。例如,当我按住前进键时,相机会向前移动“步”单位,然后暂停一段时间,然后继续移动。我猜这就是事件的生成方式,以避免在按键有点长的情况下发生多个事件。
所以,我需要在我的Paint() 例程中轮询键盘。我还没有找到如何用 Qt 做到这一点。我想有一个map<Key, bool>,它将在keyPressEvent 和keyReleaseEvent 中更新,并在Paint() 中轮询该地图。有更好的想法吗?感谢您提供任何见解。
【问题讨论】:
标签: c++ qt event-handling keyboard-events