[Olpc-uruguay] Cómo hacer bucles en GTK

Ezequiel Pereira eze2307 en gmail.com
Mie Abr 10 13:42:03 EDT 2013


Puedes usar gobject.idle_add(funcion, *parametros)
Eso hace que tu función se llame cada ves que corre el loop de GTK.
Si tu funcion devuelve True, se volvera a llamar.
Cuando devuelve False, se deja de llamar.
Ejemplo:

*import gtk*
*import gobject*
*win = gtk.Window()*
*lab = gtk.Label("0")*
*win.add(lab)*
*def sum(label):*
* label.set_text(str(eval(label.get_text())+1))*
* return True*
*gobject.idle_add(sum, lab)*
*win.show_all()*
*gtk.main()*


El 10 de abril de 2013 14:13, amviera en adinet.com.uy
<amviera en adinet.com.uy>escribió:

> Gracias Alan, pero show() no hace absolutamente nada. No hay cambios.
> Es como si tuviera que salir del bucle de python para entrar a la ventana
> diseñada en gtk. Y  para eso debe esperar a que se termine.
>
>
>
>
>
>  ----Original Message----
> De: alanjas en hotmail.com
> Fecha: 10/04/2013 12:43
> Para: "OLPC"<olpc-uruguay en lists.laptop.org>
> Asunto: Re: [Olpc-uruguay] Cómo hacer bucles en GTK
>
> De Gtk sé muy poco. Pero probá de agregarle un "show":
>
> for x in range (0,10):
>         self.nombre_de_caja_de_texto.set_text(str(x))
>         self.nombre_de_caja_de_texto.show()
>
> ------------------------------
> Date: Wed, 10 Apr 2013 12:36:46 -0300
> From: amviera en adinet.com.uy
> To: olpc-uruguay en lists.laptop.org
> Subject: [Olpc-uruguay] Cómo hacer bucles en GTK
>
> Hola.
>
> Tengo un problema con una actividad que estoy desarrollando pensada para
> ser utilizada por docentes.
>
> La estoy programando en python con pygtk.
>
> En algún momento debo hacer un bucle algo así como el siguiente.
>
> import pygtk
> ....
> while x<10:
> -----x=x+1
> -----self.nombre_de_caja_de_texto.set_text(str(x))
>
>
> Probé también con
>
> for x in range (0,10):
> -----self.nombre_de_caja_de_texto.set_text(str(x))
>
> El problema es que me muestra el resultado del proceso al final, cuando
> sale del bucle, y yo necesito que me muestre el resultado en cada pasada
> por el bucle.
>
>
> Si sustituyo la última línea por:
>
> -----print x
>
> entonces no hay problema, pero no me muestra el resultado dentro de la
> ventana de la actividad sino en el terminal.
>
> ¿Alguien me puede dar alguna posible solución?
>
> Además, no puedo cancelar ni hacer nada hasta que el programa no salga del
> bucle. Queda como trancado hasta que sale porque terminó.
>
> Desde ya muchas gracias.
>
> Saludos, Mauricio.
>
> _______________________________________________ Olpc-uruguay mailing list
> Olpc-uruguay en lists.laptop.org
> http://lists.laptop.org/listinfo/olpc-uruguay
>  _______________________________________________
> Olpc-uruguay mailing list
> Olpc-uruguay en lists.laptop.org
> http://lists.laptop.org/listinfo/olpc-uruguay
>
>
>
> _______________________________________________
> Olpc-uruguay mailing list
> Olpc-uruguay en lists.laptop.org
> http://lists.laptop.org/listinfo/olpc-uruguay
>
>


-- 
*Ezequiel Pereira Lopez*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.laptop.org/pipermail/olpc-uruguay/attachments/20130410/98ab1f1b/attachment.html>


More information about the Olpc-uruguay mailing list