Seite 1 von 1

[solved] regieren wenn Maus ueber QToolButton

Verfasst: 12. Februar 2008 15:51
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

Verfasst: 12. Februar 2008 17:08
von upsala
Das hier ist falsch:

Code: Alles auswählen

 return QWidget::event ( event ); 

Code: Alles auswählen

return QWidget::eventFilter(object, event);

Verfasst: 12. Februar 2008 18:22
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...

Verfasst: 12. Februar 2008 18:55
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