Contenido
Índice 🔎︎

# Abrir un cuadro de diálogo con Python

LibreOffice static dialogs are created with the Dialog editor and are stored in varying places according to their personal (My Macros), shared (Application Macros) or document-embedded nature. In reverse, dynamic dialogs are constructed at runtime, from Basic or Python scripts, or using any other LibreOffice supported language for that matter. Opening static dialogs with Python is illustrated herewith. Exception handling and internationalization are omitted for clarity.

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

Los ejemplos siguientes abre la consola Access2Base Trace o el cuadro de 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

The example below opens a newly edited Dialog1 dialog from a document with Tools - Macros - Run Macro menu:

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