Otwieranie okna dialogowego za pomocą Pythona

Statyczne okna dialogowe programu Collabora Office 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 Collabora Office. 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.

Prosimy o wsparcie!