Opening a Dialog with Python

Collabora Office static dialogs are created with the Dialog editor and are stored in varying places according to their personal (My Macros), shared (Collabora Office Macros) or document-embedded nature. In reverse, dynamic dialogs are constructed at runtime, from Basic or Python scripts, or using any other Collabora Office supported language for that matter. Opening static dialogs with Python is illustrated herewith. Exception handling and internationalization are omitted for clarity.

My Macros or Collabora Office Macros dialogs

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!