Foros del Web » Programando para Internet » Python »

Destruir ventanas y volver a verlas - pygtk

Estas en el tema de Destruir ventanas y volver a verlas - pygtk en el foro de Python en Foros del Web. Tengo un gran problema y es que no entiendo como hacer para que si el usuario pulsa la X para cerrar una ventana pueda volver ...
  #1 (permalink)  
Antiguo 27/02/2011, 16:09
 
Fecha de Ingreso: julio-2010
Mensajes: 7
Antigüedad: 14 años, 4 meses
Puntos: 0
Destruir ventanas y volver a verlas - pygtk

Tengo un gran problema y es que no entiendo como hacer para que si el usuario pulsa la X para cerrar una ventana pueda volver a verla luego (tal como lo tengo montado). Y es que dandole al boton que creo de "Cerrar" hago un simple hide y funciona bien, pero no se como hacer con lo de la X. Entiendo que tengo que volver a crear esa ventana... pero no se como.

esto es lo que tengo:

Código:
class icono:
   def __init__(self):
      builder = gtk.Builder()
      if OS != "win32":
        builder.add_from_file("resanator-gui.glade")
      else:
        os.chdir("C:\\resanator")
        builder.add_from_file("resanator-gui.glade")
      self.iconobandeja = builder.get_object("iconobandeja")
      self.menu = builder.get_object("menu")
      self.acerca_dialogo = builder.get_object("acerca_dialogo")
      self.preferencias = builder.get_object("preferencias")
      self.usuario_en = builder.get_object("usuario_en")
      self.clave_en = builder.get_object("clave_en")
      self.guardar_credenciales = builder.get_object("guardar_credenciales")
      self.menu_comedor = builder.get_object("menu_comedor")
      self.vista = builder.get_object("vista")
      self.cerrar_menu_comedor = builder.get_object("cerrar_menu_comedor")
	

      builder.connect_signals(self)
esa es la funcion __init__

luego para cuando el usuario da click en el boton "Cerrar":

Código:
 def on_cerrar_acerca_clicked(self, widget, data=None):
	  self.acerca_dialogo.hide()
Para activar esa ventana tengo lo siguiente:

Código:
  def on_iconobandeja_activate(self, widget, data=None):
      self.acerca_dialogo.show_all()
y por ultimo
Código:
if __name__ == "__main__":  
	icono()
	gtk.main()
El programa es un icono en la bandeja del sistema, al darle click izquierdo sale el "Acerca de"

A ver si me podeis ayudar, porque me pasa lo mismo con todas las ventanas aparte del programa -.-

gracias
  #2 (permalink)  
Antiguo 05/03/2011, 17:23
Avatar de 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: Destruir ventanas y volver a verlas - pygtk

Te refieres algo mas o menos asi?
Código Python:
Ver original
  1. import pygtk
  2. pygtk.require('2.0')
  3. import gtk
  4.        
  5.  
  6. class HelloWorld:
  7.     def onClick(self, widget, data=None):
  8.         self.child.show()
  9.  
  10.     def delete_event(self, widget, event, data=None):
  11.         print "delete event occurred"
  12.         return False
  13.    
  14.     def child_delete_event(self, widget, event, data=None):
  15.         self.child.hide()
  16.         return True
  17.  
  18.     def destroy(self, widget, data=None):
  19.         print "destroy signal occurred"
  20.         gtk.main_quit()
  21.  
  22.     def __init__(self):
  23.         self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
  24.         self.child = gtk.Window(gtk.WINDOW_TOPLEVEL)
  25.    
  26.         self.window.connect("delete_event", self.delete_event)
  27.         self.child.connect("delete_event", self.child_delete_event)
  28.    
  29.         self.window.connect("destroy", self.destroy)
  30.         self.child.connect("destroy", self.destroy)
  31.    
  32.         self.window.set_border_width(10)
  33.    
  34.         self.button = gtk.Button("Mostrar ventana")
  35.         self.cbutton = gtk.Button("Boton de prueba")
  36.    
  37.         self.button.connect("clicked", self.onClick, None)
  38.    
  39.         self.window.add(self.button)
  40.         self.child.add(self.cbutton)
  41.    
  42.         self.button.show()
  43.         self.cbutton.show()
  44.         self.window.show()
  45.         self.child.show()
  46.  
  47.     def main(self):
  48.         gtk.main()
  49.  
  50. if __name__ == "__main__":
  51.     hello = HelloWorld()
  52.     hello.main()

Etiquetas: pygtk, ventanas, volver
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:13.