[solved] regieren wenn Maus ueber QToolButton

Alles rund um die Programmierung mit Qt
Antworten
C167
Beiträge: 105
Registriert: 9. Februar 2008 20:30

[solved] regieren wenn Maus ueber QToolButton

Beitrag von C167 »

Tagchen,
ich habe hier ein DockWidget, das einie QToolButtons enthaellt. Nun wuerde ich gerne darauf reagieren, wenn man mit der Maus einen der Buttons "betritt". Vorher hatte ich das ueber QActions gehandhabt, einfach den hover()-Slot verbunden. Ich hab dann versucht, per eventFilter was zu basteln:

Code: Alles auswählen

bool cdlauncher::eventFilter ( QObject *object, QEvent *event )
{
	qDebug() << "event filter called";
	if ( object == tbMain && event->type() == QEvent::Enter )
	{
		qDebug() << "tbMain";
		return true;
	}
	return QWidget::event ( event );
}
und das dann per installEventFilter am tb registriert. aber das ding reagiert nicht, egal was ich mit dem TB anstelle.
Tips?
C167
Zuletzt geändert von C167 am 12. Februar 2008 20:18, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Das hier ist falsch:

Code: Alles auswählen

 return QWidget::event ( event ); 

Code: Alles auswählen

return QWidget::eventFilter(object, event);
C167
Beiträge: 105
Registriert: 9. Februar 2008 20:30

Beitrag von C167 »

oehm, ja, danke, aber das ist leider nicht die Loesung... egal ob ich auf den knopf druecke oder nicht, es kommt keine Ausgabe...
C167
Beiträge: 105
Registriert: 9. Februar 2008 20:30

Beitrag von C167 »

so, jetzt versteh ichs echt nimmer: nach einem make distclean taucht der Knopf nun garnicht mehr auf, wenn der eventFilter drinne is. eingebaut hab ich ihn so:

Code: Alles auswählen

tbMain = new QToolButton ( toolDockWidget );
tbMain->setIcon ( actionShowMain->icon() );
tbMain->setIconSize ( QSize ( 60,60 ) );
tbMain->installEventFilter ( this );
toolDockLayout->addWidget ( tbMain );
toolDockLayout->addItem ( dockSpacer );
sobald das installEventFilter() auskommentiert ist, erscheint der Knopf. ist es drinne, erscheint er nicht aber wie es aussieht braucht er noch Platz, die anderen Knoepfe verschieben sich naemlich nicht...

¤dit: *kopf->tisch* man sollte immer die ganze funktion anschaun und etwaige else return true; rausmachen... schande he! naja, er reagiert nu. danke ;)

C167
Antworten