You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
De ser necesario, colocaré código simple que permita explicar mi problema o duda.
Duda
¿Por que utiliza el siguiente fragmento de código en el ultimo ejemplo? (adjunto imagen)
La pregunta viene porque nadie emite la señal "senal_abrir_ventana". De hecho si comento esa línea de código, el programa funciona según lo planeado.
Quedo atento a sus comentarios
Saludos
The text was updated successfully, but these errors were encountered:
Tal como sugieres, el comportamiento de esa conexión para la situación del ejemplo es redundante. El tener una señal asociada a un comportamiento es útil cuando el programa se hace más complejo, imagina la siguiente situación;
Tienes una ventana que quieres que cada vez que se abra su tamaño se vaya reduciendo. Si conectaras directamente las señales como se está mostrando ahí, es decir, desde la emisión de la señal directamente al método showbuilt-in, entonces la ventana se mostraría sin cambios.
Necesitarías definir un método personalizado, por ejemplo, mostrar_but_se_achica que se encargara de hacer los cambios que esperas antes de mostrar la ventana con el método show de siempre. Si los hicieras con conexión directa, tendrías que buscar todas las veces que llamabas al método show y reemplazarlo por el nuevo método; peor aún si quisieras definir otro método más, tendrías que volver a hacer todos los cambios (imagina esto con un programa que tiene cientos de archivos y líneas 🥲).
En su lugar, lo que se puede hacer para dejarlo más eficiente, es dejar esa única señal "abrir_ventana" que estará asociada al comportamiento que esperas; desde otras clases no tienes idea cuál es ese comportamiento ni sabes cuál es el método que finalmente hará que la ventana se muestre, pero sabes que esa señal está conectada a ese comportamiento.
Entonces, si quieres que la ventana se muestre, solo deberás emitir esa señal. Y si quieres definir un nuevo método, solo deberás cambiar hacia donde apunta esa señal, sin necesidad de buscar en cientos de archivos todas las veces que querías mostrar la ventana, porque estará automáticamente conectada (la señal) al nuevo método que definiste.
Por supuesto como en todo, es solo una forma más de acercarse a resolver un problema; en la implementación pueden haber muchas formas de llegar al mismo comportamiento, es tu deber decidir cuál es la más apropiada para la situación que quieres resolver.
Prerrequisitos
(Marcar colocando una
X
entre los corchetes los ítems que ya hiciste, así:"[X]"
)Duda
¿Por que utiliza el siguiente fragmento de código en el ultimo ejemplo? (adjunto imagen)
La pregunta viene porque nadie emite la señal "senal_abrir_ventana". De hecho si comento esa línea de código, el programa funciona según lo planeado.
Quedo atento a sus comentarios
Saludos
The text was updated successfully, but these errors were encountered: