Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/12/2010, 13:05
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Consulta botón salir

No invoca a destroy, por que el evento es clicked, si el evento fuera delete entonces manda a llamar a destroy.

Mismo código pero corregido:
Código Python:
Ver original
  1. #coding: utf-8
  2. import gtk
  3.  
  4. class Programa:
  5.     def __init__(self):
  6.         self.ventana = gtk.Window(gtk.WINDOW_TOPLEVEL)
  7.         self.ventana.connect('delete_event', self.delete_event)
  8.         self.ventana.connect('destroy', self.destroy)
  9.  
  10.         self.ventana.set_title('T�tulo de la ventana')
  11.         self.ventana.set_default_size(440, 250)
  12.         self.ventana.set_border_width(50)
  13.  
  14.         self.caja_v = gtk.VBox(True, 0)
  15.         self.etiqueta = gtk.Label('Bienvenido:')
  16.         self.entrada = gtk.Entry(20)
  17.         self.botonera_h = gtk.HButtonBox()
  18.         self.boton_aplicar = gtk.Button(stock=gtk.STOCK_APPLY)
  19.         self.boton_aplicar.connect('clicked', self.clicked, 'Bot�n Aplicar')
  20.         self.boton_cancelar = gtk.Button(stock=gtk.STOCK_CANCEL)
  21.         self.boton_cancelar.connect('clicked', self.clicked, 'Bot�n Cancelar')
  22.         self.boton_cancelar.connect("clicked", self.OnCancel)
  23.  
  24.         self.ventana.add(self.caja_v)
  25.         self.caja_v.pack_start(self.etiqueta, True, True, 0)
  26.         self.caja_v.pack_start(self.entrada, True, True, 0)
  27.         self.caja_v.pack_start(self.botonera_h, True, True, 0)
  28.         self.botonera_h.add(self.boton_aplicar)
  29.         self.botonera_h.add(self.boton_cancelar)
  30.  
  31.     def main(self):
  32.         gtk.main()
  33.  
  34.     def show(self):
  35.         self.ventana.show_all()
  36.  
  37.     def delete_event(self, widget, data=None):
  38.         print 'delete_event'
  39.         return False
  40.  
  41.     def destroy(self, widget, data=None):
  42.         print 'destroy'
  43.         gtk.main_quit()
  44.  
  45.     def clicked(self, widget, data=None):
  46.         print data
  47.    
  48.     def OnCancel(self, widget, data=None):
  49.         print "Saliendo manualmente"
  50.         gtk.main_quit()
  51.  
  52. if __name__ == '__main__':
  53.     programa = Programa()
  54.     programa.show()
  55.     programa.main()