Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

problemas con interfaces gráficas #352

Open
7 tasks done
blancaortuzarm opened this issue Dec 9, 2021 · 5 comments
Open
7 tasks done

problemas con interfaces gráficas #352

blancaortuzarm opened this issue Dec 9, 2021 · 5 comments
Assignees
Labels
Tarea 3 Dudas sobre la T3

Comments

@blancaortuzarm
Copy link

Prerrequisitos

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

  • Leí las reglas del foro (https://github.com/IIC2233/syllabus/issues/1)
  • Busqué en las issues si ya preguntaron mi duda y no encontré nada parecido (https://github.com/IIC2233/syllabus/issues)
  • Revisé el compilado de dudas de la tarea y no encontré una issue similar a la mía (Duda SOLES_ROBADOS Syllabus#293)
  • Mi duda no se trata sobre una librería, built-in o mala práctica, ya que eso se pregunta en la issue creada para ello.
  • Mi duda no se trata de un tema administrativo o personal, ya que en ese caso debo contactar a mi profe, al Jefe de Bienestar o al correo del curso (https://iic2233.github.io/contacto/)
  • Utilizaré un título descriptivo y llenaré correctamente esta plantilla
  • De ser necesario, solo colocaré código simple que permita explicar mi problema o duda, ya que compartir código de esta evaluación puede ser considerado copia

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()

@blancaortuzarm blancaortuzarm added the Tarea 3 Dudas sobre la T3 label Dec 9, 2021
@Emiliax16 Emiliax16 self-assigned this Dec 10, 2021
@Emiliax16
Copy link

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
Copy link
Author

blancaortuzarm commented Dec 10, 2021

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
Copy link

Emiliax16 commented Dec 10, 2021

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
Copy link
Author

Muchas gracias!! Ya lo solucioné :)

@J0SEF4
Copy link

J0SEF4 commented Dec 11, 2021

Hola no entiendo muy bien que simboliza parent?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Tarea 3 Dudas sobre la T3
Projects
None yet
Development

No branches or pull requests

3 participants