[Qt] hover/unHover sur un QLabel

Bonjour à tous !

Ayant débuté le c++/Qt j'ai un petit soucis avec mon QLabel qui me sert de bouton (J'ai choisis le QLabel pour avoir directement accès au QPixMap) :
J'ai réussi après un peu de mal à gérer le hover, en réimplémentant la méthode mouseMoveEvent, mais quand il s'agit de détecter lorsque la souris n'y est plus, je ne reçoit aucuns événements particulier et le mouseMoveEvent ne m'aide pas plus...

J'ai également tenté de faire un
bool       Item::event(QEvent *event)
{
if (event->type() == QEvent::MouseMove)
emit(hover(true));
else
emit(hover(false));
return false;
}

Mais là même le hover ne fonctionne plus (au passage, si j'enlève le else le hover refonctionne)

Quelqu'un aurais t'elle une piste pour m'aider ? Merci d'avance :)

1 réponse

  1. Bonjour,
    J'ai survolé ton code, et déjà je remarque que ta fonction implémente un algorithme légèrement erroné, il serait préférable de l'écrire comme ceci
    bool Item::event( QEvent *event ){
    	
    	if( event->type() == QEvent::MouseMove ){
    		emit( hover( true ) );
    		return ( true );
    	}
    	
    	else{
    		
    		emit( hover( false ) );
    		return ( false );
    	}
    }
    

    Ceci dit, cette fonction est elle un slot ou pas ?
    à bientôt
    0