[Python-es] Dejar hacer
Juan José Gómez Romera
jjgomera en gmail.com
Mie Feb 9 22:32:41 CET 2011
En qt está QtGui.QApplication.processEvents()
que puesto en un bucle actualiza la gui cada vez que se ejecuta el bucle,
supongo que habrá algo muy similar en wxpython
El 9 de febrero de 2011 22:08, Narcis Garcia - GiLUG
<informatica en actiu.net>escribió:
> 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/
>>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110209/afcb00dc/attachment.html>
Más información sobre la lista de distribución Python-es