Active JavaScript en el navegador para mostrar las páginas de ayuda de LibreOfficeDev.

Abrir un cuadro de diálogo con Python

Los diálogos estáticos de LibreOfficeDev 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 LibreOfficeDev 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.