Le système de signaux/slots de Qt est similaire à un modèle de notifier/listener mais est plus pratique à utiliser:
Pas besoin d'hériter d'une interface de base, la vérification de la compatibilité des signatures du signal et du slot se fait au runtime:
[^] # Re: signals/slots?
Posté par alberthier (site web personnel) . En réponse à la dépêche Qt Software ouvre Qt à la communauté et publie Qt Jambi 4.5. Évalué à 7.
Pas besoin d'hériter d'une interface de base, la vérification de la compatibilité des signatures du signal et du slot se fait au runtime:
connect(myQPushButton, SIGNAL(clicked()), this, SLOT(theButtonHasBeenClicked());
Ca évite de devoir hériter de tout un tas d'interfaces de base (le C++ ne dispose pas de classes anonymes)
Ca permet aussi un peu plus de souplesse: on peut connecter un signal à un slot qui a moins de paramètres:
connect(myObject, SIGNAL(eventHappened(int, QString, float)), this, SLOT(handleEvent(int));