All pastes #196850 Raw Edit

Ejemplo

public python v1 · immutable
·published 2006-10-10 22:45 UTC
rendered paste body
import sys # Importamos sys para poder usar exit# Esto se hace para ver si se tiene pygtk, en caso de no tenerlo.....try:    import pygtk    pygtk.require("2.0")# Saltaria esta excepcion que imprimiria el errorexcept:    print "ha de tener pygtk instalado"    sys.exit(1) # salimos del programa si da el error# Lo mismo que antes pero con la libreria GTKtry:    import gtk    import gtk.gladeexcept:    print "Necesita tener GTK instalado"    sys.exit(1)# creamos una clase para nuestra aplicacionclass Principal:    # Definimos el constructor    def __init__(self):        # Creamos una variable con el nombre del fichero de glade        self.gladefile = "gui.glade"        # Ahora creamos el arbol de widgets con los widgets del fichero glade        # Tenemos que darle el nombre del fichero y el nombre de la ventana        self.wTree = gtk.glade.XML(self.gladefile, "ventana")        # Creamos un diccionario que manejará los eventos, en este caso 2, el evento        # delete_event (para cerrar la aplicacion) de la ventana y el evento        # clicked del boton. Como puedes ver, es un diccionario donde su key es el nombre        # del evento tal y como lo pusiste en el glade y el valor de la key sera        # el nombre de la funcion que contralara el evento        # Como veras, el delete_event de la ventana he dicho que use la funcion gtk.main_quit        # de la libreria GTK, vamos esto lo que hace es destruir la ventna, asi que codigo        # que nos ahorramos        eventos = {"on_ventana_delete_event": gtk.main_quit,                "on_btnPulsame_clicked": self.on_btnPulsame_clicked}        # ahora conectamos los eventos, esto se hace siempre        self.wTree.signal_autoconnect(eventos)        # Ahora, extraemos las dos cajas de texto que tenemos        # Para poder manipularlas desde el codigo fuente        # Como vas a ver, es tan facil de asignarle a una variable        # el valor de retorno de esa funcion cuyo parametro es el nombre        # del widget tal y como lo hemos puesto en el glade        self.cajaNombre = self.wTree.get_widget("cajaNombre")        self.cajaSaludo = self.wTree.get_widget("cajaSaludo")    # Evento del boton, siempre se pone los mismos parametros    def on_btnPulsame_clicked(self, widget):        # Primero guardamos en una variable lo que hemos escrito en la primera caja        # como veras, es tan facil como llamar al metodo get_text() de la caja que extraimos        # antes del wTree        self.Nombre = self.cajaNombre.get_text()        # Ya tenemos el nombre, ahora lo insertamos en la otra caja en un saludo        self.cajaSaludo.set_text("Hola %s" % self.Nombre)        # Ha sido tan facil como pasar por argumento una cadena, en este caso un saludo        # con el nombre que antes hemos cogido de la primera caja.# Esto de aqui siempre se pone, cambia Principal() por el nombre de tu claseif __name__ == "__main__":    Principal()    gtk.main()