Bien iniciamos con esto:
#!/usr/bin/env python

#Importamos las librerias Necesarias de GTK
import pygtk
pygtk.require("2.0")
import gtk

class Base:
def destruir(self,widget, data="None"):
gtk.main_quit()

def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
#TITULO DEL PROGRAMA
self.window.set_title("Python & GTK With [Z]tuX xD!")
#AJUSTES DE LA VENTANA
self.window.set_position(gtk.WIN_POS_MOUSE)
self.window.set_size_request(600,200)
#BOTONES
self.BotonSalir = gtk.Button("Salir")
self.BotonSalir.connect("clicked",self.destruir)
#Posicionamos el Boton usando Fixed
Posicion = gtk.Fixed() #Creamos un objeto para posicionar el boton
Posicion.put(self.BotonSalir, 20 ,30) #Especificamos el boton que quermos ajustar
#Y ponemos el boton en la coordenada (20,30)


#MOSTRAMOS LA VENTANA
self.window.add(Posicion)
#self.window.show() --> Vamos a cambiar esta linea por la de abajo... :D
self.window.show_all() #Para mostrar TODOS lo que esta contendido
self.window.connect("destroy",self.destruir)

def main(self):
gtk.main()

if __name__=="__main__":
base = Base()
base.main()

:O No se espanten, es muy sencillo bien que es esto?:

self.BotonSalir = gtk.Button("Salir")
self.BotonSalir.connect("clicked",self.destruir)

Simplemente estamos creando un botón nuevo, que lo llamamos "BotonSalir", es un objeto de tipo "Button" (Botón) y dentro del paréntesis ("Salir") se coloca el texto que se desea mostrar en el botón...
La segunda linea nos dice que a "BotonSalir" cuando se haga click en el botón [("clicked") --> Importante eso en paréntesis ] el botón va a llamar a la función  "destruir", que ya habíamos creado anteriormente, asi que al hacer click en ese botón la ventana se cerrará...

Ahora bien, las lineas:
#Posicionamos el Boton usando Fixed
Posicion = gtk.Fixed() #Creamos un objeto para posicionar el boton
Posicion.put(self.BotonSalir, 20 ,30) #Especificamos el boton que quermos ajustar
#Y ponemos el boton en la coordenada (20,30)

Estas lineas nos ayudaran a posicionar el botón en la ventana... Primero asignamos a "Posicion" un ajuste:
Posicion = gtk.Fixed() #Creamos un objeto para posicionar el botón
Después ponemos ("put") dicho botón en algún lugar de la ventana, para ello, la linea:
Posicion.put(self.BotonSalir, 20 ,30)
Nos ayudara a colocar el "BotonSalir" en la coordenada (20,30).

Como se darán cuenta dentro del paréntesis se escribe algo como:
(self.BotonQueQueremos, Coordenada X, Coordenada Y)

Ahora lo importante... mostrar dichos botones D:
Es sencillo... Simplemente hacemos:

#MOSTRAMOS LA VENTANA 
self.window.add(Posicion)
#self.window.show() --> Vamos a cambiar esta linea por la de abajo... :D
self.window.show_all() #Para mostrar TODOS lo que esta contendido
self.window.connect("destroy",self.destruir)
En self.window.add(Posicion) ---> Lo que hacemos es añadir a la ventana principal "Posicion", pero "Posicion" como sabemos esta definido como de tipo Ajuste...


#Posicionamos el Boton usando Fixed
Posicion = gtk.Fixed() #Creamos un objeto para posicionar el boton

Entonces lo que hacemos es añadir los botones a la ventana, después cambiamos  show() por show_all(), para mostrar TODO, y eso es todo....
Al final tenemos:

self.window.connect("destroy",self.destruir)

Que sirve para terminar la aplicación correctamente en caso de cerrar la ventana con el Botón "Close" (la x que esta en la esquina)

Así que si hacemos correr el programa, podremos ver algo como esto:


Si damos click en "Salir" el programa se cerrará con éxito... :D
Pero también podemos añadir una Ayuda ese botón, lo que haremos ahora es que cuando pasemos el puntero arriba de el botón salir nos muestre un cuadro de ayuda que diga algo como "Este botón cerrara la aplicación", bien para ello agregaremos las lineas:

self.BotonSalir.set_tooltip_text(u"Este botón cerrará la aplicación")  

Guardamos nuestro archivo y probamos... Claro está que esta linea se agrega despues de haber creado el boton, no antes, si no obviamente python no encontrara el botón y nos tirará un error...
Otra cosa, si se dan cuenta en el texto hay Acentos o Tildes, python asi como asi no las va a reconocer y nos va a tirar un error de algo como:

"SyntaxError: Non-ASCII character '\xc3' in file interfaz1.py on line 27, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
"
Para esto agregamos una "u" antes de el texto en comillas y agregamos:
# -*- encoding: utf-8  -*-
AL inicio del programa 
Una vez hecho esto tenemos algo como:

#!/usr/bin/env python
# -*- encoding: utf-8 -*-

#Importamos las librerias Necesarias de GTK
import pygtk
pygtk.require("2.0")
import gtk

class Base:
def destruir(self,widget, data="None"):
gtk.main_quit()

def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
#TITULO DEL PROGRAMA
self.window.set_title("Python & GTK With [Z]tuX xD!")
#AJUSTES DE LA VENTANA
self.window.set_position(gtk.WIN_POS_MOUSE)
self.window.set_size_request(600,200)
#BOTONES
self.BotonSalir = gtk.Button("Salir")
self.BotonSalir.connect("clicked",self.destruir)
#Posicionamos el Boton usando Fixed
Posicion = gtk.Fixed() #Creamos un objeto para posicionar el boton
Posicion.put(self.BotonSalir, 20 ,30) #Especificamos el boton que quermos ajustar
#Y ponemos el boton en la coordenada (20,30)
#Ayuda Del Boton
self.BotonSalir.set_tooltip_text(u"Este botón cerrara la aplicación")

#MOSTRAMOS LA VENTANA
self.window.add(Posicion)
#self.window.show()
self.window.show_all() #Para mostrar TODO lo que esta contendido
self.window.connect("destroy",self.destruir)

def main(self):
gtk.main()

if __name__=="__main__":
base = Base()
base.main()

Y finalmente corremos el programa y podremos ver la ayuda:


[Z]tuX
edit post

Comments

0 Response to 'GTK y Python [III - Botones]'

Publicar un comentario