Contenido

# Abrir un cuadro de diálogo con Python

Los diálogos estáticos de LibreOffice se crearon con el Editor de diálogos y se almacenan en una variedad de lugares de acuerdo a su naturaleza personal (Mis Macros), compartida (macros de la aplicación) o incrustada (en el documento). Por el contrario, los diálogos dinámicos se construyen en tiempo de ejecución a partir de las secuencias de órdenes en Basic o Python o mediante el uso de otro lenguaje compatible con LibreOffice para esta tarea. La apertura de diálogos estáticos con Python se ilustra aquí mismo. El manejo de las excepciones y la internacionalización se omiten para mayor claridad del ejemplo.

## Diálogos Mis macros o Macros de la aplicación

Los ejemplos siguientes abre la consola de Access2Base Trace o el diálogo importado TutorialsDialog a través del menú Herramientas ▸ Macros ▸ Ejecutar macro:

            # -*- coding: utf-8 -*-
            from __future__ import unicode_literals

            def consoleDlg():
                ctx =XSCRIPTCONTEXT.getComponentContext()
                smgr = ctx.getServiceManager()
                dp = smgr.createInstanceWithContext("com.sun.star.awt.DialogProvider", ctx)
                dlg = dp.createDialog( "vnd.sun.star.script:Access2Base.dlgTrace?location=application")
                dlg.execute()
                dlg.dispose()

            def tutorDialog():
                ctx =XSCRIPTCONTEXT.getComponentContext()
                smgr = ctx.getServiceManager()
                dp = smgr.createInstanceWithContext("com.sun.star.awt.DialogProvider", ctx)
                dlg = dp.createDialog("vnd.sun.star.script:Standard.TutorialsDialog?location=application")
                dlg.execute()
                dlg.dispose()

            g_exportedScripts = (consoleDlg, tutorDialog)

## Cuadros de diálogo incrustados en documentos

El ejemplo siguiente abre un diálogo Dialog1, recién editado, desde un documento con el menú Herramientas ▸ Macros ▸ Ejecutar macro:

            # -*- coding: utf-8 -*-
            from __future__ import unicode_literals

            def docDialog():
                """ Mostrar un diálogo alojado en un documento """
                model = XSCRIPTCONTEXT.getDocument()
                smgr = XSCRIPTCONTEXT.getComponentContext().ServiceManager
                dp = smgr.createInstanceWithArguments( "com.sun.star.awt.DialogProvider", (model,))
                dlg = dp.createDialog( "vnd.sun.star.script:Standard.Dialog1?location=document")
                dlg.execute()
                dlg.dispose()

            g_exportedScripts = (docDialog,)

Diríjase a msgbox.py en el directorio {installation/program/ para ver ejemplos de cuadros de diálogo dinámicos en Python.

Temas relacionados

Abrir un cuadro de diálogo con Basic

Ejemplos de programación en Python

Ayuda con las macros en Python en LibreOffice