2011/2/9 Narcis Garcia - GiLUG <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 > 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/