[Python-es] Dejar hacer
Narcis Garcia - GiLUG
informatica en actiu.net
Mie Feb 9 22:08:32 CET 2011
Supongo que la asincronía es la clave para hacerlo bién.
Ahora he encontrado el método Update() aplicable a todos los objetos
gráficos, y me sirve para la actualización manual (no funciona al abrir
el programa).
No sé cómo se devuelve el control a la GUI.
Supongo que me acabaré mirando lo de los hilos/tareas asíncronas.
Gracias.
Al 09/02/11 21:37, En/na marmolro ha escrit:
>
>
> 2011/2/9 Narcis Garcia - GiLUG <informatica en actiu.net
> <mailto:informatica en actiu.net>>
>
> Hola, estoy diseñando una interfaz con wxPython que enumera una
> serie de computadoras en red, y actualiza su estado.
>
> Por ejemplo:
> Equipo 1: ausente
> Equipo 2: 10%
> Equipo 3: 50%
> Equipo 4: 20%
> etc.
>
> Le he puesto un boton para actualizar el estado (cada consulta tarda
> su tiempo), y esto tiene que servir para unos 30 equipos. Al pulsar
> [Actualizar] hago un recorrido (for Actual in Equipos) para
> consultar su estado y reflejarlo en las etiquetas de texto:
> Indicador.SetLabel("consultando")
> NuevoEstado=EstadoConsultado(Actual)
> Indicador.SetLabel(NuevoEstado)
>
> El problema es que se queda todo congelado hasta que termina todo el
> proceso de toda la lista, y el formulario no cambia hasta el final.
> Ni siquiera se aprecia el "consultando" para cada consulta durante
> el recorrido.
>
> He buscado un equivalente al "DoEvents" de VisualBasic, pero no he
> encontrado nada para Python. ¿Alguien sabe como resolverlo?
>
> Gracias.
> _______________________________________________
> Python-es mailing list
> Python-es en python.org <mailto:Python-es en python.org>
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
> Para que se refresque tu parte gráfica tienes que devolverle el control
> a la misma. No he hecho nada nunca con wxPython, pero es lo mismo en
> todos los frameworks gráficos que conozco. Soluciones hay varias:
>
> * Implementa la consulta de estado en un thread (o varios)
> independiente y actualiza la parte gráfica mediante eventos
> (supongo que hay un equivalente a signal/slot de KDE para wxPython)
> * Implementa la consulta por partes, devolviendo el control a la gui
> en cata iteración (por ejemplo, por equipos).
>
> Un saludo,
> marmolro
>
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
Más información sobre la lista de distribución Python-es