Secuenciacion correcta de dialogos con PyGTK y GLADE

Daniel Garcia Jones danielgj en wanadoo.es
Lun Mayo 10 15:14:35 CEST 2004


El lun, 10-05-2004 a las 14:49, Pepe Aracil escribió:
> Hola.
> 
> 
> Me parece que tendras que crear la ventana que te valida los cambios como un dialogo modal. (gtk.Dialog)
> 
> La forma correcta de llamarlo es con gtk.Dialog.run(). Esta función se espera hasta que el usuario hace
> click! en una opción (Aceptar,Cancelar,...) 
> 
> 
> Aqui tienes una función mia para generar dialogos modales "al vuelo" del estilo Pregunta/Respuesta.
> 
> 
> 
> def QuestionDialog(title = None,parent = None,label = None,icon = None ,
>     buttons = (gtk.STOCK_OK, gtk.RESPONSE_ACCEPT,gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT)):
> 
>     if title == None and parent != None:
>         title = parent.get_title()
> 
> 
>     dialog = gtk.Dialog(title, parent,gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
>         buttons)
> 
>     dialog.set_border_width(5)
>     dialog.set_resizable(gtk.FALSE)
> 
> 
>     if icon:
>         image = gtk.Image()
>         image.set_from_stock(icon,gtk.ICON_SIZE_DIALOG)
>         dialog.vbox.pack_start(image,gtk.TRUE,gtk.TRUE,5)
>         image.show()
> 
>     if label:
>         label = gtk.Label(label)
>         dialog.vbox.pack_start(label,gtk.TRUE,gtk.TRUE,5)
>         label.show()
> 
>     result = dialog.run()
> 
> 
> -----------------------
> 
> Y la llamo así.
> 
> 	result = QuestionDialog(parent = VentanaPadre,
>             label = U"¿Desea eliminar este contacto?",
>             icon = gtk.STOCK_DIALOG_WARNING,
>             title = U"¡¡ Atención !!")
> 
>         if result != gtk.RESPONSE_ACCEPT: return
> 
> 	.......
> 
> 
> 
> 
> El Lunes, 10 de Mayo de 2004 12:35, Daniel Garcia Jones escribió:
> > Hola!
> >
> > Estoy escribiendo una aplicacion PyGTK y tengo un pequeño problema con
> > el orden en que me muestra un par de dialogos.
> >
> > El flujo es algo parecido a esto:
> >
> > def on_menuGuardar_activate(self,widget):
> >
> >    if cambios():
> >            self.ventanaCambios.show()
> >    if self.validar_xml():
> >            hacer cosas
> >    else:
> >            self.ventanaXMLInvalido.show()
> >
> > El caso es, para guardar un documento, primero se mira si ha habido
> > cambios. Si si muestra un dialogo que permite aceptar o descartar los
> > cambios. Despues de esto se valida (es un documento XML) contra un
> > esquema y despues se guarda.
> >
> > Si no hay cambios funciona sin problema, pero cuando si hay cambios, al
> > mismo tiempo que muestra el dialogo de aceptar/descartar cambios,
> > valida, con lo que la validacion se hace antes de aceptar/decsrtar los
> > cambios.
> >
> > La pregunta es, ¿existe una forma de hacer que se espere a que haya
> > aceptado o descartado los cambios antes de validar? No se me ocurre como
> > hacerlo ya que deberia ser capaz de recoger un valor de salida de
> > self.ventanaCambios.show() y no se puede, no?
> >
> > Espero que haya quedado entendible la pregunta que creo que me he liado
> > un poco.
> >
> > Un saludo (y gracias de antemano)

Vaya! Es justo lo que necesito. Muchas gracias :)
-- 
------------------------------------------------
              Daniel García Jones               

    danielgj en wanadoo.es | dgarcia en it.uc3m.es
       http://montoya.aig.uc3m.es/~jones
------------------------------------------------


------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es