Prüfen Sie, ob eine Taste gedrückt mit Qt

Ich bin Herumspielen mit einigen Grafiken und implementierte ich die Kamera einfach die Bewegung mit den Pfeiltasten. Mein Erster Ansatz war zu überschreiben keyPressEvent etwas wie das hier tun:

switch(key)
{
   case up: MoveCameraForward(step); break;
   case left: MoveCameraLeft(step); break;
   ...
}

Diese nicht funktioniert, wie ich es wünschen würde. Wenn ich drücken Sie und halten Sie, zum Beispiel, die weiterleiten-Taste, die Kamera bewegt sich vorwärts "Schritt" - Einheiten, dann hält für eine Weile und fährt dann Fort zu bewegen. Ich vermute, dass dies ist, wie das Ereignis wird generiert, um zu vermeiden, dass mehrere Ereignisse bei einem etwas langen Tastendruck.

So, ich muss eine Umfrage der Tastatur in meinem Paint() routine. Ich habe nicht gefunden, wie es mit Qt. Ich dachte, dass eine map<Key, bool> die aktualisiert werden sollen in keyPressEvent und keyReleaseEvent Umfrage, die Karte in Paint(). Irgendwelche besseren Ideen? Vielen Dank für alle Erkenntnisse.

Schreibe einen Kommentar