[gelöst] eventFilter auf QDoubleSpinBox

Alles rund um die Programmierung mit Qt
Antworten
Flachkoepper
Beiträge: 149
Registriert: 11. Januar 2005 12:14
Wohnort: Hannover

[gelöst] eventFilter auf QDoubleSpinBox

Beitrag von Flachkoepper »

Moin,

folgendes Problem: Ich will in einem Dialog Mausklicks auf eine QDoubleSpinBox abfangen. Dazu in meinem Dialog folgender Code:

Code: Alles auswählen

 MyDlg::MyDlg() {
...
myDoubleSpinBox->installEventFilter(this);
...
}

Code: Alles auswählen

bool MyDlg::eventFilter(QObject *obj, QEvent *ev) 
{
if(QString::compare(obj->metaObject()->className(),"QDoubleSpinBox") == 0 ) {
		if( ev->type() == QEvent::MouseButtonPress ) {
			QMouseEvent* me = static_cast<QMouseEvent*>(ev);
 			if( me->button() == Qt::LeftButton)
				qDebug() << "links";
			if( me->button() == Qt::RightButton)
				qDebug() << "rechts";
			return QObject::eventFilter(obj,ev);
		} else {
			return false;
		}
	} else {
         // pass the event on to the parent class
		return QObject::eventFilter(obj, ev);
	}
}
Verhalten des Programms: Es werden nur die Klicks abgefangen, die auf die Pfeil oben/ Pfeil unten - Widgets gehen, die Klicks auf das QLineEdit bleiben unbehandelt. Gerade auf die bin ich aber scharf :-(
Irgendwer ne Idee?

Viele Grüße,
Flachkoepper
Zuletzt geändert von Flachkoepper am 12. April 2007 13:35, insgesamt 1-mal geändert.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Die Lösung hast Du schon selbst genannt, vermute ich mal.
Flachkoepper
Beiträge: 149
Registriert: 11. Januar 2005 12:14
Wohnort: Hannover

Beitrag von Flachkoepper »

Du meinst, den EventFilter direkt auf das Lineedit legen? Dat Ding is aber protected.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Na und? Ein Problem wäre es erst, wenn es private wäre...
Flachkoepper
Beiträge: 149
Registriert: 11. Januar 2005 12:14
Wohnort: Hannover

Beitrag von Flachkoepper »

Vielleicht könnt ihr mir ein wenig auf die Sprünge helfen? Ich sehe nicht, wie ich aus meinem Dlg an das LineEdit komme, ohne mir eine eigene DoubleSpinBox abzuleiten.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Dann leite es halt ab. Das ist weniger Code als in diesem Thread bereits schrieben wurde. Die andere Möglichkeit wäre noch über QObject::findChildren(...).
Flachkoepper
Beiträge: 149
Registriert: 11. Januar 2005 12:14
Wohnort: Hannover

Beitrag von Flachkoepper »

Danke! findChildren war das, was mir nicht eingefallen war. Jetzt klappts.

Beste Grüße,
Flachkoepper
Antworten