Supongamos que tengo un MyWidget
que contiene un MySubWidget
, p. Ej. un widget personalizado que contiene un campo de texto o algo. Quiero que otras clases puedan conectarse a las señales y ranuras expuestas por la instancia MySubWidget
. Es la forma convencional de hacer esto:¿Cuál es la expresión correcta de Qt para exponer señales/ranuras de widgets contenidos?
- exponer un puntero a la
MySubWidget
ejemplo a través de un métodosubWidget()
enMyWidget
- repiten las señales y las ranuras de
MySubWidget
en la claseMyWidget
y escribir código "reenvío" - ¿Algo más?
Opción 1 parece que el código de menos, pero también rompe tipo de encapsulación, ya que ahora otras clases saben cuáles son los control contenido de MyWidget
son y podrían llegar a ser dependientes de su funcionalidad.
La opción 2 parece que mantiene el encapsulamiento, pero es una gran cantidad de código aparentemente redundante y potencialmente enrevesado que daña la elegancia de todo el sistema de señales y ranuras.
¿Qué se hace normalmente en esta situación?
Te recomendaría dos veces si pudiera para esa conexión 'SIGNAL, SIGNAL'. ¡Muy útil! –