Mehrere Tasten abfragen

Alles rund um die Programmierung mit Qt
Antworten
killerjoe
Beiträge: 27
Registriert: 23. Januar 2005 00:17

Mehrere Tasten abfragen

Beitrag von killerjoe »

Hallo,

ist es nicht möglich auf einfache Art und Weise auf die mehrere verschiedene Tasten dieselben Aktionen ausgeführt werden?

Bei folgendem Code:

Code: Alles auswählen

    switch(event->key())
    {
	    event->accept();
		case Key_Enter:
		case Key_N:
		case Key_Return:
		{
			machwas();
			break;
		}
.........
passiert auf die Eingabe von Enter oder Return erstmal gar nichts. Bei "N" geht es wie gewünscht. Das seltsame ist: nachdem das erste mal "n" gedrückt wurde klappt es danach auch mit Enter und Return - nur das ist ganz und gar nicht das gewünschte verhalten.

Ist das ein Bug in QT, oder ein Bug in meinem Kopf?

Danke!
Markus
Adi
Beiträge: 87
Registriert: 1. Januar 2006 14:51

Beitrag von Adi »

Es ist u.U. davon abhängig, welches Element im Form den Fokus hat.
Entsprechend hat key_enter in deisem Objekt vorrang.

Ich habe auch eine Routine wo ich die Taste abfange. Wenn der Fokus jedoch in einem Textfeld ist, hat dieses Vorrang.
Win 2k, Win XP
QT Win Opensource 4.1.1
MinGW 3.4.2
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Sollte dein Code nicht eher so lauten:

Code: Alles auswählen

switch (event->key()) {         
  case Key_Enter: 
  case Key_N: 
  case Key_Return: 
  { 
    event->accept();
    machwas(); 
    break; 
  }
}
killerjoe
Beiträge: 27
Registriert: 23. Januar 2005 00:17

Beitrag von killerjoe »

Habe den code mal abgeändert, bringt aber auch nichts. Ich weiss auch nicht ob es was mit dem Eingabefocus zu tun hat. "n" klappt wunderbar - ich habe es zu testzwecken ja auch extra in die Mitte der 3 Keys gesteckt, finde einfach nicht wieso "n" zuverlässig funktioniert, Return und Enter aber nur nachdem "n" einmal gedrückt worden sind.
Adi
Beiträge: 87
Registriert: 1. Januar 2006 14:51

Beitrag von Adi »

Wo hast du den Event eingehängt? Ins Hauptformular oder auf ein bestimmtes Objekt wie z.B. Bushbutton?
Was genau versuchst du zu bauen?
Win 2k, Win XP
QT Win Opensource 4.1.1
MinGW 3.4.2
killerjoe
Beiträge: 27
Registriert: 23. Januar 2005 00:17

Beitrag von killerjoe »

Das Keys fange in direkt im Formular ab und bei den angegeben Tasten will ich auf bestimmte Weise einen QTextBrowser reloaden. Und zwar soll diese Aktion auf alle 3 Tasten reagieren. Wenn das nicht gehen würde würdeich mir ja was anderes überlegen, aber seltsamerweise geht es ja wenn ich vorher mal die "n" gedrückt habe. Aber scheinbar bin ich der einzige der dieses Problem hat.
Antworten