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.

Prosimy o wsparcie!