IIC2233 / Syllabus-2021-2

Repositorio oficial del curso IIC2233 Programación Avanzada 🚀✨
https://iic2233.github.io/
38 stars 48 forks source link

problemas con interfaces gráficas #352

Open blancaortuzarm opened 2 years ago

blancaortuzarm commented 2 years ago

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Después de hacer la comunicación entre sockets, cuando quiero abrir hacia la siguiente ventana no sucede nada. El ingreso es válido y como que ignora el comando de la ventana y abrir la siguiente; y si el ingreso es inválido, debería actualizar un texto que lo indique y me tira este error: QObject::setParent: Cannot set parent, new parent is in a different thread

Si necesitan más detalles hice git push. El problema está en el frontend - ventana_inicio.py - manejar_mensaje()

Emiliax16 commented 2 years ago

Hola @blancaortuzarm ! revisé todo tu código y al correlo, la ventana principal si me abría sin problemas. Se verifica bien si el input de usuario es válido o no. Algunas consideraciones acerca de tu código:

  1. No implementaste un controlador en la carpeta del cliente. Las conexiones con las señales y las distintas interfaces las realizas en main.py de cliente. Es mucho más limpio y seguro si implementas un módulo de Controlador que se inicie en tu procesador_principal.py. Este controlador puede tener todas las señales del frontend. Te recomiendo ver las últimas actividades del curso para que veas a qué me refiero.
  2. Cuidado con algunas líneas sobre 100 caracteres de largo.
  3. La ventana principal se actualiza cada vez que entra un usuario, pero sólo para el usuario que acaba de ingresar. Es decir, no se actualiza para todos.

Vas súper, mucho ánimo con lo que falta.

blancaortuzarm commented 2 years ago

Hola!

  1. Con respecto al primer punto te refieres a un Event() ?
  2. Gracias por avisarme lo de los 100 caracteres de código, a veces se olvidan esos detalles.
  3. Sí, noté que tengo ese error pero no he sabido como solucionarlo. ¿Me puedes dar alguna pista?

Gracias!

Emiliax16 commented 2 years ago

Hola! Responderé en orden:

  1. No, no me refiero a event. Controlador vendría siendo el backend de cliente, un módulo distinto a cliente.py que tienes y que se encarga de distinguir los distintos mensajes que llegan, regular todas las señales del frontend, etc. Como te dije, en las últimas actividades podrás encontrarlo. Esto es una recomendación por el tema del acoplamiento y los módulos.
  2. De nada!
  3. Ahora mismo no tengo los medios para volver a revisar tu código, pero te dejo algunas ideas sobre ese problema:

Al ingresar un nuevo usuario válido, el mensaje que se genera termina en una función que sólo actualiza la interfaz del usuario que produjo el mensaje, por lo que es necesario entregarle a esa función (ej: actualizar_ventana_principal.py) la lista con todos los usuarios y el mensaje con el nombre del nuevo usuario. Cada interfaz de usuario puede tener por default todos los campos de los demás nombre de usuarios pero vacíos, entonces a medida que ingresa un nuevo usuario, revisas toda la lista de usuarios y vas llenando esos campos vacíos con el nuevo nombre. De esa manera debería actualizarse para todos. Esa es una idea.

Espero sea de ayuda. Suerte!

blancaortuzarm commented 2 years ago

Muchas gracias!! Ya lo solucioné :)

J0SEF4 commented 2 years ago

Hola no entiendo muy bien que simboliza parent?