Inhalte
Index 🔎︎

# Einen Dialog mit Python öffnen

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.

## My Macros or Application Macros dialogs

Die Beispiele unten öffnen die Konsole Access2Base Trace oder den importierten Dialog TutorialsDialog über Extras – Makros – Makro ausführen…:

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

## Ins Dokument eingebettete Dialoge

Das Beispiel unten öffnet den neu erstellten Dialog Dialog1 aus einem Dokument heraus über Extras – Makros – Makro ausführen…:

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

            def docDialog():
                """ Zeige einen Dokument-basierten Dialog """
                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,)

Beispiele für dynamische Dialoge in Python finden sich in der msgbox.py im Verzeichnis {installation}/program/.

Verwandte Themen

Öffnen eines Dialogs mit Basic

Python-Programmierbeispiele

LibreOffice Python-Skripte Hilfe