Re: destrucción de una ventana
Manuel Enrique González Ramírez
maengora en gmail.com
Jue Abr 17 00:08:08 CEST 2008
Con wx yo hago lo siguiente:
Para cerrar la ventana desde un botón:
self.Close()
Y me ha funcionado correctamente.
Lo otro, para que no se me bloquee el nuevo formulario (o página) me aseguro
de que ésta es un form child.
Vuelvo y te repito, trabajo con wx y visualwx, no se si esto te sirva de
algo.
El día 16/04/08, Rafael Cantos <rafaelcantos en hotmail.com> escribió:
>
>
>
>
> Hola de nuevo.
>
> tengo un problema con una ventana que cuelga de la ventana principal.
> Desde el menú de la aplicación, llamo al método ir_a_pagina(), el cuál crea
> otra ventana con una entrada de texto y dos botones. El problema viene al
> pulsar algun botón o al presionar enter sobre la entrada de texto.
> Si pulso enter sobre el botón cancelar, no pasa nada (y en otros cambios
> que he hecho, cerraba todo el programa). Si se pulsa el botón aceptar o se
> pulsa enter sobre la entrada de texto, el programa se queda pillado.
> Os agradecería vuestra ayuda y que me dijeseis que he hecho mal.
>
> Se me olvidaba. una vez que se pulse un botón o sobre la entrada de texto,
> se realiza la acción concreta y esta ventana debe cerrarse, volviendo el
> control al programa principal.
>
> def obtener_pag_teclado_callback(self, widget, entry, window):
> """
> MÃ(c)todo para obtener la página de la entrada de texto e iniciar la
> búsqueda
> """
> entry_text = entry.get_text()
> valido = self.l.buscar_pagina(entry_text)
> if valido == 1:
> # self.r.detener()
> # self.l.obtener_pistas(self.l.nodos_libro[self.l.pos_nodos_libro])
> # self.sinc_vista_audio()
> window.destroy()
> else:
> self.mostrar_mensaje("Página no válida", "La página introducida excede
> el rango o no se ajusta al formato")
> window.destroy()
>
> def ir_a_pagina_callback(self, w, data):
> """
> MÃ(c)todo para controlar la búsqueda de una página indicada por el usuario
> """
> existe = self.comprobar_libro()
> if existe == 1:
> window = gtk.Window(gtk.WINDOW_TOPLEVEL)
> window.set_size_request(200, 100)
> window.set_title("GTK Entry")
> window.connect("delete_event", self.destroy)
> vbox = gtk.VBox(False, 0)
> window.add(vbox)
> vbox.show()
> entry = gtk.Entry()
> entry.set_max_length(50)
> entry.connect("activate", self.obtener_pag_teclado_callback, entry,
> window)
> entry.set_text("hello")
> entry.insert_text(" world", len(entry.get_text()))
> entry.select_region(0, len(entry.get_text()))
> vbox.pack_start(entry, True, True, 0)
> entry.show()
> hbox = gtk.HBox(False, 0)
> vbox.add(hbox)
> hbox.show()
>
> boton_aceptar = gtk.Button("Aceptar")
> hbox.pack_start(boton_aceptar, True, True, 0)
> boton_aceptar.connect("clicked", self.obtener_pag_teclado_callback, entry,
> window)
> boton_aceptar.show()
>
> button = gtk.Button("Cancelar")
> button.connect("clicked", self.destroy)
> hbox.pack_start(button, True, True, 0)
> button.set_flags(gtk.CAN_DEFAULT)
> button.grab_default()
> button.show()
> window.show()
> else:
> self.mostrar_mensaje("Advertencia", "No hay ningun libro actualmente en
> reproducción")
>
> def mostrar_mensaje(self, titulo, mensaje):
> """
> MÃ(c)todo para mostrar un mensaje
> """
> # Creacion de una ventana de dialogo
> self.mensaje = gtk.Dialog(titulo, None, 0, (gtk.STOCK_OK,
> gtk.RESPONSE_OK))
> # creacion de una etiqueta con el mensaje de error
> self.mensaje.etiqueta = gtk.Label(mensaje)
> self.mensaje.vbox.pack_start(self.mensaje.etiqueta, True, True, 0)
> self.mensaje.etiqueta.show()
> response = self.mensaje.run()
> self.mensaje.destroy()
> Rafael Cantos Villanueva Estudiante de Ingeniería Técnica en Informática
> de Gestión, universidad de Córdoba. http://www.rafaelcantos.es E-MAIL:
> rafaelcantos en hotmail.com
>
>
> Creo que ha podido estropearse la identación al copiar el código.
>
> Saludos.
>
> Rafa
> _________________________________________________________________
> Tecnología, moda, motor, viajes,…suscríbete a nuestros boletines para
> estar siempre a la última
> Guapos y guapas, clips musicales y estrenos de cine.
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es