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