Inhoud

# Een dialoogvenster met Python openen

Statische dialoogvensters van LibreOffice worden gecreëerd met de Dialoogbewerker en worden opgeslagen op verschillende plaatsen in overeenstemming met hun persoonlijke (Mijn macro’s), gedeelde (Applicatie-macro’s) of in het document ingesloten aard. Omgekeerd, dynamische dialoogvensters worden tijdens het uitvoeren geconstrueerd, van BASIC- of Python-scripts, of door gebruik te maken van een andere door LibreOffice ondersteunde taal. Het openen van statische dialoogvensters met Python wordt hierbij gedemonstreerd. De foutafhandeling en internationalisering zijn hier weggelaten voor de helderheid.

## Mijn macro's en Applicatie macro's dialoogvensters

De onderstaande voorbeelden openen het Access2Base Trace console of de geïmporteerde dialoog TutorialsDialog met Extra - Macro's - Macro uitvoeren menu:

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

## Document-ingesloten dialoogvensters

Het onderstaande voorbeeld opent een recent gewijzigde Dialog1 dialoogvenster van een document met Extra - Macro's - Macro uitvoeren menu:

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

            def docDialog():
                """ Toon een documentgebaseerde dialoogvenster """
                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,)

Bekijk de msgbox.py in de map {installation}/program/ voor voorbeelden van dynamische dialogen in Python.

Verwante onderwerpen

Een dialoogvenster met BASIC openen

Python programmeringsvoorbeelden

Hulp bij LibreOffice Python-scripts