Re: Problemas con aplicación python+gtk
bameda
bameda en gmail.com
Jue Nov 25 00:20:57 CET 2004
Mil gracias, ya esta todo arreglado.... Ya podré hacer la colada tranquilo.
Un Saludo
On Wed, 24 Nov 2004 11:16:28 +0100, Lorenzo Gil Sanchez <lgs en sicem.biz> wrote:
> Hola David,
>
> para lo que tu quieres yo usaria las funciones idle (funciones ociosas).
> GTK+ llama a estas funciones siempre que no tenga nada mejor que hacer.
> Asi, puedes usar una de estas funciones para comprobar si tu lavadora ya
> ha terminado de lavar la ropa. Algo como esto:
>
> import pygtk
> pygtk.require('2.0')
> import gtk
> import gobject
> import time
>
> # esto es lo que tarda tu super lavadora
> INTERVALO_TIEMPO = 60 * 5 # 5 minutos
>
> # funcion de ayuda para mostrar un cuadro de dialogo
> def msg(text):
> d = gtk.MessageDialog(None,
> gtk.DIALOG_MODAL |
> gtk.DIALOG_DESTROY_WITH_PARENT,
> gtk.MESSAGE_WARNING,
> gtk.BUTTONS_OK,
> text)
> d.run()
> d.destroy()
> gtk.main_quit()
>
> # funcion que se llama constantemente para comprobar si ha pasado el
> tiempo
> def comprueba_tiempo(hora_limite):
> hora_actual = time.time()
> if hora_limite < hora_actual:
> msg("Tu ropa se esta pudriendo!!!")
> return False # ya no nos llaman mas
>
> return True # siguen llamandonos
>
> if __name__ == '__main__':
> w = gtk.Window()
> w.connect('destroy', gtk.main_quit)
>
> label = gtk.Label('Lavando la ropa...')
> w.add(label)
> w.show_all()
>
> hora_limite = time.time() + INTERVALO_TIEMPO
> # instalo la funcion ociosa
> gobject.idle_add(comprueba_tiempo, hora_limite)
>
> gtk.main()
>
> Como ves en el codigo, si tu funcion idle devuelve True, GTK la seguira
> llamando. Si devuelve False, ya no la llamara mas.
>
> Como ves, el ejemplo es muy sencillo, pero explica lo de las funciones
> idle que creo que es lo que mas te conviene en este caso.
>
> Un saludo
>
> Lorenzo
--
____________________________________________
|
| David Barragán Merino
| E-mail: bameda en gmail.com
| Ingeniería Informática
| Universidad Carlos III Madrid
|____________________________________________
Más información sobre la lista de distribución Python-es