Seite 1 von 1

keypressevent : STRG+K

Verfasst: 10. Juni 2010 14:48
von whit3
Hallo ich will mittels meines keypressevent prüfen ob 2 Tasten gedrückt wurde. Vorzugsweise natuerlich STRG+EGAL.

Code: Alles auswählen

void Form1::keyPressEvent(QKeyEvent * e)
{
	bool a=false,b=false;
	switch (e->key()) 
	{ 
		case Qt::Key_A:
			a = true;	
			break;
		case Qt::Key_B:
			b = true;
			break;
	}
	if(a && b)
		QMessageBox::information(this,"","");
}
Das war mein Ansatz, aber funzt natuerlich nicht, was ich mir schon dachte.

Verfasst: 10. Juni 2010 14:57
von franzf
Reicht dir QKeyEvent::modifiers?

Verfasst: 10. Juni 2010 15:03
von whit3
franzf hat geschrieben:Reicht dir QKeyEvent::modifiers?
kann ich das in mein keypressevent implementieren??

Verfasst: 10. Juni 2010 15:09
von franzf
whit3 hat geschrieben:
franzf hat geschrieben:Reicht dir QKeyEvent::modifiers?
kann ich das in mein keypressevent implementieren??
modifieres ist eine Methode von QKeyEvent (darfst ruhig in der Doku nachschauen :P). Über das Objekt, das an das keyPressEvent() übergeben wird, kannst du dir so die modifiers (STRG, SHIFT, ...) holen.

Verfasst: 10. Juni 2010 15:23
von whit3
franzf hat geschrieben:
whit3 hat geschrieben:
franzf hat geschrieben:Reicht dir QKeyEvent::modifiers?
kann ich das in mein keypressevent implementieren??
modifieres ist eine Methode von QKeyEvent (darfst ruhig in der Doku nachschauen :P). Über das Objekt, das an das keyPressEvent() übergeben wird, kannst du dir so die modifiers (STRG, SHIFT, ...) holen.
vielen dank fuer die schnellen antworten :P
so funktioniert es :

Code: Alles auswählen

void Form1::keyPressEvent(QKeyEvent * e)
{
	if ( (e->key() == Key_U) && (e->state() & ControlButton) )
		QMessageBox::information(this,"","TastenCombo");	
}

Verfasst: 10. Juni 2010 16:01
von franzf
Welche Qt-Version verwendest du denn? QKeyEvent hat hier bei mir mit Qt-4.6.3 keine Methode namens "state", das heißt wie gesagt modifiers.

Verfasst: 10. Juni 2010 19:22
von upsala
Qt3 hatte state