Supponiamo di avere un MyWidget
che contiene un MySubWidget
, ad es. un widget personalizzato che contiene un campo di testo o qualcosa del genere. Voglio che altre classi siano in grado di connettersi ai segnali e agli slot esposti dall'istanza MySubWidget
contenuta. È il modo convenzionale di fare questo:Qual è l'idioma Qt corretto per l'esposizione di segnali/slot di widget contenuti?
- esporre un puntatore all'istanza
MySubWidget
attraverso un metodosubWidget()
inMyWidget
- Duplicare i segnali e gli slot di
MySubWidget
nella classeMyWidget
e scrivere il codice "forwarding" - Qualcos'altro?
Scelta 1 sembra il codice di meno, ma è anche una sorta di rompe l'incapsulamento, dal momento che ora altre classi sanno che cosa i widget confinato di MyWidget
sono e potrebbero diventare dipendente da loro funzionalità.
La scelta 2 sembra come se conservasse l'incapsulamento, ma è un codice apparentemente ridondante e potenzialmente contorto che incasina l'eleganza dell'intero sistema di segnali e slot.
Cosa si fa normalmente in questa situazione?
Vorrei invitarvi due volte se potessi per la connessione "SEGNALE, SEGNALE". Molto utile! –