[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