PyGtk |
|
PyGtk
Que es Pygtk
Pygtk es un wrapper de la librería GTK+ para ser usado por programas hechos en python, cuando se combinan con aplicaciones como PyORBit y gnome-python, puede ser usado para escribir aplicaciones de gnome totalmente usables.
Como Funciona
Lo mas importante para comprender la teoria de pygtk es que saber que pygtk se maneja atravez de señales y llamadas. GTK+ es un toolkit manejado por eventos lo que significa que se quedara en gtk.main() hasta que un evento ocurre y el control se pase a la función adecuada. Este paso de control se hace usando la idea de señales. Cuando un evento ocurre (como un click), una señal apropiada es emitida por el widget que fue presionado. Hay por ejemplo señales que todos los widgets heredan como 'destruir, hay sin embargo señales especificas como las de botones de toogle.
Para que un botón realice una operación, configuramos un manejador de señal para que coja estas señales y por lo tanto llame la función apropiada. Esto se hace usando un metodo como GtkWidget (de la clase GObject):
handler_id = object.connect(name, func, func_data)
Donde object es una instancia de GtkWidget que estara emitiendo la señal y el primer argumento 'name' es un string o cadena conteniendo el nombre de la señal que se quiera evaluar. El segundo argumento, func, es la función que se desea llamar cuando se tenga la señal, y el tercer argumento, func_data, son los datos que usted desea pasar a la función. El método devuelve un handler_id que puede ser usado para desconectar o bloquear el handler o manejador.
la función especificada en el segundo argumento se llama la función de llamada o "callback function" y generalmente es de la forma:
def callback_func(widget, callback_data):
Donde el primer argumento sera un puntero hacia el widget que emitió la señal y el segundo (callback_data) un puntero hacia los datos dados como el ultimo argumento del método connect() .
Ejemplos
El Programa mas pequeño (una ventana vacía)
import pygtk
pygtk.require('2.0')
import gtk
class Win:
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) #definición de la ventana
self.window.set_title("Ventana") #Titulo de la ventana
self.window.show() #muestra la ventana
def main():
gtk.main()
if __name__ == '__main__':
Ventana = Win()
main()Resultado |
|
Hola Mundo
import pygtk
pygtk.require('2.0')
import gtk
class Imprime:
def saluda(self, widget, data=None):
print ("cerrado-->>Hola Mundo ;)")
def cerrar(self, widget, event, data=None):
gtk.main_quit()
return gtk.FALSE
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) #Declara ventana
self.window.set_title("Hola") #Titulo ventana
self.window.set_border_width(50) #Tamaño de la ventana
self.window.connect("delete_event", self.cerrar) #Conecta a la ventana con el evento cerrar
#DECLARA BOTON#
self.button = gtk.Button("close") #Declara Boton
self.button.connect("clicked", self.saluda, None) #Conecta el boton con la funcion saluda
self.button.connect("clicked", self.cerrar, None) #Conecta el boton con la funcion cerrar
self.window.add(self.button) #Agrega el boton a la ventana
#TERMINA DE DECLARAR BOTON#
self.button.show() #Muestra Boton
self.window.show() #Muestra Ventana
def main():
gtk.main()
if __name__ == '__main__':
ejemplo = Imprime()
main()Resultado |
|
|
Links
Proyectos hechos en PyGtk
Artículos relacionados
|
Esta sección es un esbozo en construcción. Se aprecian tus aportes y paciencia |



