Text Documents (Writer)
HTML Documents (Writer Web)
Spreadsheets (Calc)
Presentations (Impress)
Drawings (Draw)
Database Functionality (Base)
Formulae (Math)
Charts and Diagrams
Macros and Scripting
Office Installation
Common Help Topics
OneOffice Logo

Opening a Dialog with Python

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

My Macros or Application Macros dialogs

The examples below open Access2Base Trace console or the imported TutorialsDialog dialog with Tools - Macros - Run Macro menu:


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

Document embedded dialogs

The example below opens a newly edited Dialog1 dialog from a document with Tools - Macros - Run Macro menu:


        # -*- coding: utf-8 -*-
        from --future-- import unicode-literals
            
        def docDialog():
            """ Display a doc-based dialog """
            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,)
    

Refer to msgbox.py in {installation}/program/ directory for Python dynamic dialog examples.