Seite 1 von 1

Tastaturabfrage

Verfasst: 12. Dezember 2005 13:05
von hotte
Hallo,

in einer Qt-Anwendung habe ich einen QPushButton mit der zugehörigen Slotroutine.

In der Slotroutine möchte ich feststellen, ob zu dem click auf den Button gleichzeitig die Taste Alt, Shift oder Strg gedrückt wurde.

Kann mir jemand helfen?

Re: Tastaturabfrage

Verfasst: 12. Dezember 2005 15:58
von macman
Nimm nicht das clicked-Signal, sondern mouseButtonPressed oder mouseButtonReleased. Der Slot sähe dann ungefähr so aus:

Code: Alles auswählen

void myDialog::mousePressEvent(QMouseEvent *e)
{
	switch (e->type())
	{
	case QEvent::MouseButtonPress: 
		QMouseEvent * qme = (QMouseEvent *) e;
		if (qme->button() == Qt::RightButton && qme->modifiers() == Qt::ALT)
		...todo
	}
}

nochmal Tastaurabfrage

Verfasst: 13. Dezember 2005 11:07
von hotte
Hallo,
der einfachheithalber und unter der Voraussetzung, das ich die Tastaur in dem Slot der QPushButton abfragen kann, habe ich nicht erwähnt das ich in dem Elternwidget insgesamt zwei QPushButton und zwei QComboBox habe.

Wie kann ich in oben beschriebenen Code die zwei QPushButton unterscheiden?
Kann ich die QComboBox in eigener Slotroutine verarbeiten oder muss ich die Verarbeitung in den mousePressEvent einbinden?

Vielen Dank im voraus.

Re: nochmal Tastaurabfrage

Verfasst: 13. Dezember 2005 11:49
von macman
Dann guck Dir mal QSignalMapper an. Ist wahrscheinlich die bessere Lösung.