En qt está QtGui.QApplication.processEvents()<br>que puesto en un bucle actualiza la gui cada vez que se ejecuta el bucle, supongo que habrá algo muy similar en wxpython<br><br><div class="gmail_quote">El 9 de febrero de 2011 22:08, Narcis Garcia - GiLUG <span dir="ltr"><<a href="mailto:informatica@actiu.net">informatica@actiu.net</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Supongo que la asincronía es la clave para hacerlo bién.<br>
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).<br>
<br>
No sé cómo se devuelve el control a la GUI.<br>
Supongo que me acabaré mirando lo de los hilos/tareas asíncronas.<br>
<br>
Gracias.<br>
<br>
<br>
Al 09/02/11 21:37, En/na marmolro ha escrit:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">
<br>
<br>
2011/2/9 Narcis Garcia - GiLUG <<a href="mailto:informatica@actiu.net" target="_blank">informatica@actiu.net</a><br></div>
<mailto:<a href="mailto:informatica@actiu.net" target="_blank">informatica@actiu.net</a>>><div class="im"><br>
<br>
Hola, estoy diseñando una interfaz con wxPython que enumera una<br>
serie de computadoras en red, y actualiza su estado.<br>
<br>
Por ejemplo:<br>
Equipo 1: ausente<br>
Equipo 2: 10%<br>
Equipo 3: 50%<br>
Equipo 4: 20%<br>
etc.<br>
<br>
Le he puesto un boton para actualizar el estado (cada consulta tarda<br>
su tiempo), y esto tiene que servir para unos 30 equipos. Al pulsar<br>
[Actualizar] hago un recorrido (for Actual in Equipos) para<br>
consultar su estado y reflejarlo en las etiquetas de texto:<br>
Indicador.SetLabel("consultando")<br>
NuevoEstado=EstadoConsultado(Actual)<br>
Indicador.SetLabel(NuevoEstado)<br>
<br>
El problema es que se queda todo congelado hasta que termina todo el<br>
proceso de toda la lista, y el formulario no cambia hasta el final.<br>
Ni siquiera se aprecia el "consultando" para cada consulta durante<br>
el recorrido.<br>
<br>
He buscado un equivalente al "DoEvents" de VisualBasic, pero no he<br>
encontrado nada para Python. ¿Alguien sabe como resolverlo?<br>
<br>
Gracias.<br>
_______________________________________________<br>
Python-es mailing list<br></div>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a> <mailto:<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a>><div class="im"><br>
<a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br>
<br>
Para que se refresque tu parte gráfica tienes que devolverle el control<br>
a la misma. No he hecho nada nunca con wxPython, pero es lo mismo en<br>
todos los frameworks gráficos que conozco. Soluciones hay varias:<br>
<br>
* Implementa la consulta de estado en un thread (o varios)<br>
independiente y actualiza la parte gráfica mediante eventos<br>
(supongo que hay un equivalente a signal/slot de KDE para wxPython)<br>
* Implementa la consulta por partes, devolviendo el control a la gui<br>
en cata iteración (por ejemplo, por equipos).<br>
<br>
Un saludo,<br>
marmolro<br>
<br>
<br>
<br>
_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
</div></blockquote><div><div></div><div class="h5">
_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-es" target="_blank">http://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
</div></div></blockquote></div><br>