Supposons que j'ai un MyWidget
qui contient un MySubWidget
, par ex. un widget personnalisé qui contient un champ de texte ou quelque chose. Je veux que d'autres classes puissent se connecter aux signaux et aux slots exposés par l'instance MySubWidget
contenue. La manière classique pour ce faire:Quel est l'idiome Qt correct pour exposer les signaux/emplacements des widgets contenus?
- Expose un pointeur vers l'instance
MySubWidget
par une méthodesubWidget()
dansMyWidget
- Dupliquer les signaux et les fentes de
MySubWidget
dans la classeMyWidget
et écrire le code « Transfert » - Autre chose?
Choix 1 semble que le moins le code, mais il a aussi casse sorte d'encapsulation, puisque maintenant d'autres classes savent ce que les widgets sont MyWidget
confinées de et pourraient devenir dépendants de leur fonctionnalité.
Choix 2 semble garder l'encapsulation, mais c'est beaucoup de code apparemment redondant et potentiellement alambiqué qui bousille l'élégance de l'ensemble des signaux et des machines à sous.
Que fait-on normalement dans cette situation?
Je voudrais vous upvote deux fois si je pouvais pour cette connexion 'SIGNAL, SIGNAL'. Très utile! –