Membuka Dialog dengan Python

Dialog statis LibreOffice dibuat dengan Editor dialog dan disimpan di berbagai tempat sesuai dengan pribadinya (Makro Saya) , bersama (Application Macros) atau yang bersifat document-embedded. Sebaliknya, dialog dinamis dibuat saat runtime, dari skrip Basic atau Python, atau menggunakan bahasa yang didukungLibreOffice lainnya. Membuka dialog statis dengan Python diilustrasikan di sini. Penanganan pengecualian dan internasionalisasi dihilangkan untuk kejelasan.

Dialog Makro Saya atau Makro Aplikasi

Contoh di bawah ini membuka konsol Access2Base Trace atau dialog TutorialsDialog yang diimpor dengan menu Tools - Macro - Run Macro:


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

Dialog dokumen tertanam

Contoh di bawah ini membuka dialog Dialog1 yang baru diedit dari dokumen dengan menu Tools - Macro - Run Macro:


        # -*- coding: utf-8 -*-
        from __future__ import unicode_literals
            
        def docDialog():
            """ Menampilkan dialog berbasis dokumen """
            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,)
    

Rujuk msgbox.py dalam direktori {installation}/program/ untuk contoh dialog dinamis Python.

Mohon dukung kami!