[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