Spis treści
Indeks 🔎︎

# Otwieranie okna dialogowego za pomocą Pythona

Statyczne okna dialogowe programu LibreOffice są tworzone za pomocą edytora okien dialogowych i są przechowywane w różnych miejscach zgodnie z ich osobistymi (Moje makra), współdzielonymi (Makra aplikacji) lub osadzone w dokumencie. I odwrotnie, dynamiczne okna dialogowe są tworzone w czasie wykonywania, ze skryptów Basic lub Python albo przy użyciu dowolnego innego języka obsługiwanego przez program LibreOffice. Otwieranie statycznych okien dialogowych w Pythonie jest zilustrowane poniżej. Dla jasności pominięto obsługę wyjątków i internacjonalizację.

## Okna dialogowe Moje makra lub Makra aplikacji

Poniższe przykłady otwierają konsolę Access2Base Trace lub zaimportowane okno dialogowe TutorialsDialog poprzez Narzędzia - Makra - Uruchom makro:

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

## Okna dialogowe osadzone w dokumencie

Poniższy przykład otwiera nowo edytowane okno dialogowe Dialog1 z dokumentu z menu Narzędzia - Makra - Uruchom makro:

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

            def docDialog():
                """ Wyświetl okno dialogowe oparte na dokumencie """
                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,)

Zobacz msgbox.py w katalogu {installation}/program/, aby zobaczyć przykłady dynamicznych okien dialogowych Pythona.

Tematy pokrewne

Otwieranie okna dialogowego za pomocą Basic

Przykłady programowania w Pythonie

Pomoc skryptów Pythona LibreOffice