I'm using the keyboard to navigate in an OpenGL scene. The problem is, when I hold down the "w" key to move forward, I edge forward a tiny bit first, pause, then glide forward smoothly. That's just how keyboard input works in Windows - when you hold down a key, there's a pause before it begins repeating. It's useful for, say, typing, but not much good for 3D navigation. Professional games override this somehow. I was wondering if there was a way to override this behavior with Qt, to eliminate this brief pause before the key starts repeating.

Also, in games you can for instance press "w" and "d" simultaneously to move diagonally forward and to the right. In Qt the way I have it set up now (just monitoring for key down events) I can only press one key at a time. So if I mashed "w" and "d" at the same time, one would trigger before the other, and I would move either forward or right, but not both. Is there some way I could work around that and detect when multiple keys are held down?