Seite 1 von 1

warten zwischen keyPressEvents

Verfasst: 15. Oktober 2007 17:29
von paulreuter
Hallo zusammen,

ich habe ein kleines Problem beim Abfangen von KeyPressEvents.
Ich möchte einen Motor mit Tasten rotieren lassen. Wenn ich die Tasten einmal und kurz drücke ist das ganze kein Problem. Bei schnellem oder längerem Drücken unterbricht sich die Funktion jeweils selbst.

Die Funktion zum Abfangen der keyPressEvents sieht so aus:

Code: Alles auswählen

keyPressEvent(QKeyEvent* e){
	switch(e->key()){
		case Qt::Key_A:
			moveMotor(10,LEFT);
			break;
		case Qt::Key_D:
			moveMotor(10,RIGHT);
			break;
                [...]
}}
die Motorfunktion:

Code: Alles auswählen

moveMotor(int deg, Direction d)
{
     //drehe Motor um deg Grad in Richtung d
    [...]
}
Geschehen müsste eigentlich folgendes:
einmal Taste drücken -> Motor dreht 10 Grad
während des Drehens nochmal drücken -> warte bis vorherige Drehung abgeschlossen ist und beginne dann neue Drehung

Ich hoffe Ihr könnt mir helfen, auch wenn ich mich vielleicht stellenweise etwas kryptisch ausgedrückt habe. Ansonsten fragt einfach nochmal nach...

Viele Grüße

Paul

Verfasst: 15. Oktober 2007 18:32
von Volker
Wenn ich dich richtig verstanden habe, dann würde ich es so lösen, dass Du im keyReleaseEvent eine Integer Variable hochsetzt.
In Deiner moveMotor arbeitest du die dann ab bis sie wieder auf 0 ist.

Allerdings glaub ich ehrlich gesagt nicht, dass das den Effekt erziehlt, den Du haben willst, auch wenn es auf Deine Beschreibung passen könnte. :roll: