Secuenciacion correcta de dialogos con PyGTK y GLADE

Pepe Aracil pepe en diselpro.com
Lun Mayo 10 14:49:09 CEST 2004


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)

------------ 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