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 <informat...@actiu.net
<mailto:informat...@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@python.org <mailto:Python-es@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@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/