claro, las lineas:<div><br></div><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"> while gtk.events_pending():</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
gtk.main_iteration()</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
hacen que se complete todo lo referente a gtk antes de continuar con tu bucle, por lo cual puedes cancelarlo cuando quieras, y siempre te va a actualizar la interfaz en cada pasada del bucle, ya que al cambiar cualquier cosa en los widgets de tu aplicación, se producen eventos nuevos en gtk que nunca pasarán desapercibidos gracias a esas dos lineas de codigo.</div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><br></div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<br></div><br><div class="gmail_quote">El 15 de abril de 2013 19:19, <a href="mailto:amviera@adinet.com.uy">amviera@adinet.com.uy</a> <span dir="ltr"><<a href="mailto:amviera@adinet.com.uy" target="_blank">amviera@adinet.com.uy</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Muchas gracias a todos por sus respuestas. De todos pude sacar alguna conclusión, pero dos líneas sugeridas por Flavio fueron fundamentales:<br>
<br><div> while gtk.events_pending():</div><div> gtk.main_iteration()<br><br>El problema es que mientras se está en un bucle, tanto while como for, se realizan todas las operaciones indicadas allí, menos las correspondientes Gtk, por lo que queda el programa como trancado hasta que termine el bucle. No funciona ni siquiera un botón CANCELAR o SALIR, ni <br>
nada.<br><br>Ya está solucionado.<br><br>Estoy tratando de terminar el programa que considero una buena herramienta para el manejo de datos personales, informes, evaluaciones y demás, de los alumnos. La idea es que pueda ser configurado por el usuario según las necesidades de cada caso particular, ya que no en todos los cargos docentes manejamos los mismos datos.<br>
<br>Cuando lo tenga pronto lo subiré y me dirán qué les parece.<br><br>Saludos, Mauricio.<br></div><br><br><br>
<br>
<blockquote><div class="im">
----Original Message----<br>
De: <a href="mailto:fdanesse@gmail.com" target="_blank">fdanesse@gmail.com</a><br>
Fecha: 10/04/2013 16:03 <br>
Para: "Comunidad ceibalJAM"<<a href="mailto:olpc-uruguay@lists.laptop.org" target="_blank">olpc-uruguay@lists.laptop.org</a>><br>
Asunto: Re: [Olpc-uruguay] Cómo hacer bucles en GTK<br>
<br>
</div><div><div class="h5"><div>import gtk</div><div><br></div><div>w=gtk.Window()</div><div><br></div><div>label = gtk.Label('Hola')</div><div>w.add(label)</div><div>w.set_size_request(300,300)</div><div><br></div>
<div>w.show_all()</div><div>
<br></div><div>x = 0</div><div>while x < 10000:</div><div> x += 1</div><div> label.set_text(str(x))</div><div> </div><div> while gtk.events_pending():</div><div> gtk.main_iteration()</div><div><br></div>
<div>gtk.main()</div><div><br></div><div><br></div><div><br></div><br><div class="gmail_quote">El 10 de abril de 2013 15:09, Pablo Moleri <span dir="ltr"><<a href="mailto:pmoleri@gmail.com" target="_blank">pmoleri@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Mauricio, se me escapó el mail anterior.<br>
<br>2013/4/10 <a href="mailto:amviera@adinet.com.uy" target="_blank">amviera@adinet.com.uy</a> <span dir="ltr"><<a href="mailto:amviera@adinet.com.uy" target="_blank">amviera@adinet.com.uy</a>></span><div>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">El problema no es de tiempo, de hecho hay una línea time.sleep(1) que permite hacer la pausa. También había probado con timeout_add y no funcionó.<br>
</blockquote></div><div><br>El time.sleep(1) seguramente no te funciona porque el programa
se queda trancado ahí en vez de actualizar la pantalla, por eso no vez
los cambios reflejados.<br>En la programación en cualquier entorno
gráfico es importante no dejar trancada la ejecución del programa, por
eso es mejor recurrir a los timers.<br> </div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Lo que tu me sugerís da el siguiente error que no sé cómo solucionarlo: <br>
<br>unbound method tiempo() must be called with MiClase instance as first argument (got nothing instead)</blockquote><br></div></div><div class="gmail_quote">Esto seguramente te da porque tenés la función tiempo declarada dentro de una clase, ej:<br>
<br>class MiClase:<br> ...<br></div><div class="gmail_quote"> def tiempo(self, *args):<br> ...<br><br></div><div class="gmail_quote">y vos la estás llamando sin la clase. Tendrías que usar self.tiempo o miclase.tiempo, depende si estás adentro o afuera de la clase.<br>
<br></div><div class="gmail_quote">Si querés mandame la clase entera, así veo bien como está programado.<br><br></div><div class="gmail_quote">Saludos,<br>Pablo<br><br></div></div></div>
<br>_______________________________________________<br>
Olpc-uruguay mailing list<br>
<a href="mailto:Olpc-uruguay@lists.laptop.org" target="_blank">Olpc-uruguay@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a><br>
<br></blockquote></div><br>
_______________________________________________<br>Olpc-uruguay mailing list<br><a href="mailto:Olpc-uruguay@lists.laptop.org" target="_blank">Olpc-uruguay@lists.laptop.org</a><br><a href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a><br>
<br>
</div></div></blockquote><br>
<br>_______________________________________________<br>
Olpc-uruguay mailing list<br>
<a href="mailto:Olpc-uruguay@lists.laptop.org">Olpc-uruguay@lists.laptop.org</a><br>
<a href="http://lists.laptop.org/listinfo/olpc-uruguay" target="_blank">http://lists.laptop.org/listinfo/olpc-uruguay</a><br>
<br></blockquote></div><br></div>