Re: Pequeña duda con gtk.main() en un programa con pygtk
Jesús Espino
jespinog en gmail.com
Dom Feb 11 17:11:13 CET 2007
Hola:
La idea del gtk.main() es iniciar el bucle de eventos.
En tu codigo, cuando creas el objeto "instancia" se ejecutan ciertas
acciones (en el __init__) y esas acciones lo que normalmente hacen es
crear la estructura de widgets e inizializar todo lo que sea necesario
inicializar. Cuando todo esta inicializado entonces arrancas el bucle
de eventos con gtk.main() y es cuando se muestra todo.
Por ejemplo:
window = gtk.Window()
button = gtk.Button()
window.add(button)
window.show_all()
gtk.main()
Antes del gtk.main() ya existe la ventana y el boton y se le ha
declarado que deben mostrarse, pero hasta que no ejecutas gtk.main()
no se muestra ya que no esta corriendo el bucle de eventos.
Una vez ejecutado gtk.main() el flujo del programa es a traves de las
señales y los manejadores.
Espero haberme explicado...
Un saludo.
El 11/02/07, Jesus Rodriguez <foxandxss en gmail.com> escribió:
> Buenas, he hecho ya bastantes programas usando pygtk, pero la parte:
>
> if __name__=="__main__":
> instancia = clase()
> gtk.main()
>
> Donde clase es la clase que contiene por ejemplo el XML de glade y los
> eventos y tal.
>
> se que se hace asi, todos los ejemplos lo hacen asi, instancias tu clase y
> llamas a gtk.main().
>
> Pero no entiendo, que o para que sirve exactamente "gtk.main()"? es quizá
> para inicializar gtk? De ser así, para que sirve instanciar una clase que ni
> siquiera sirve como parametro a gtk.main(). Vamos, imagino que
> gtk.maininicializa GTK y ya se encarga de mostrar todo, pero como sabe
> el metodo
> main de gtk que tiene que inicializar la clase correcta y tal....
> Por otro lado he visto codigo de gente que no asigna a ninguna variable la
> instancia, asi:
>
> clase()
> gtk.main()
>
> Si, creo que toda mi duda es esa, no saber como gtk.main() sabe que "clase"
> es la que lleva el gtk de mi aplicacion :P
>
> Alguien sabe como funciona ?
>
> Gracias! :)
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
Más información sobre la lista de distribución Python-es