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

amviera en adinet.com.uy amviera en adinet.com.uy
Lun Abr 15 18:19:52 EDT 2013


Muchas gracias a todos por sus  respuestas. De todos pude sacar alguna conclusión, pero dos líneas sugeridas por Flavio fueron fundamentales:

    while gtk.events_pending():        gtk.main_iteration()

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 
nada.

Ya está solucionado.

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.

Cuando lo tenga pronto lo subiré y me dirán qué les parece.

Saludos, Mauricio.







----Original Message----

De: fdanesse en gmail.com

Fecha: 10/04/2013 16:03 

Para: "Comunidad ceibalJAM"<olpc-uruguay en lists.laptop.org>

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



import gtk
w=gtk.Window()
label = gtk.Label('Hola')w.add(label)w.set_size_request(300,300)
w.show_all()

x = 0while x < 10000:    x += 1    label.set_text(str(x))        while gtk.events_pending():        gtk.main_iteration()

gtk.main()



El 10 de abril de 2013 15:09, Pablo Moleri <pmoleri en gmail.com> escribió:

Mauricio, se me escapó el mail anterior.

2013/4/10 amviera en adinet.com.uy <amviera en adinet.com.uy>


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ó.



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.
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.
 Lo que tu me sugerís da el siguiente error que no sé cómo solucionarlo: 



unbound method tiempo() must be called with MiClase instance as first argument (got nothing instead)
Esto seguramente te da porque tenés la función tiempo declarada dentro de una clase, ej:



class MiClase:
    ...
    def tiempo(self, *args):
        ...

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.



Si querés mandame la clase entera, así veo bien como está programado.

Saludos,
Pablo



_______________________________________________

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




------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.laptop.org/pipermail/olpc-uruguay/attachments/20130415/99721fb4/attachment.html>


More information about the Olpc-uruguay mailing list