Obsah
Rejstřík 🔎︎

# Otevření dialogového okna pomocí Pythonu

Statická dialogová okna LibreOffice jsou vytvářena pomocí editoru dialogových oken a ukládána na různá místa podle toho, zda jde o osobní (Moje makra), sdílená (Makra LibreOffice) nebo přímo do dokumentu vložená okna. Naopak dynamická dialogová okna jsou vytvářena za běhu skriptů Basicu, Pythonu nebo jiných jazyků podporovaných v LibreOffice. Zde je znázorněno otevírání statických dialogů pomocí Pythonu. Pro přehlednost je vynecháno zpracování výjimek a internacionalizace.

## Dialogová okna v části Moje makra nebo Makra LibreOffice

V následujících příkladech se pomocí příkazu Nástroje - Makra - Spustit makro otevře konzole Access2Base Trace nebo importované dialogové okno TutorialsDialog:

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

## Dialogová okna vložená v dokumentu

V následujícím příkladu se otevře pomocí příkazu Nástroje - Makra - Spustit makro nově upravené dialogové okno Dialog1:

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

            def docDialog():
                """ Zobrazí dialogové okno z dokumentu """
                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,)

Příklady dynamických dialogových oken v Pythonu obsahuje soubor msgbox.py v adresáři {instalace}/program/.

Související témata

Otevření dialogového okna pomocí Basicu

Příklady programování v Pythonu

Nápověda pro skripty Pythonu v LibreOffice