Activez JavaScript dans le navigateur pour afficher les pages d'aide de LibreOfficeDev

Ouvrir une boîte de dialogue avec Python

Les boîtes de dialogue statiques LibreOfficeDev sont crées avec l'éditeur de boîte de dialogue et sont stockées à des emplacement différents en fonction leur nature (Mes macros), partagées (Macros LibreOfficeDev) ou incorporées au document. A l'inverse, les boîtes de dialogue dynamiques sont construites lors de l'exécution, à partir de scripts Basic ou Python, ou à l'aide de tout autre langage pris en charge par LibreOfficeDev. L’ouverture de boîtes de dialogue statiques avec Python est illustrée ci-après. La gestion des exceptions et l'internationalisation sont omises pour plus de clarté.

Boîtes de dialogue Mes macros ou Macros d'application

Les exemples ci-dessous ouvrent une console Access2Base Trace ou la boîte de dialogue importée TutorialsDialog avec le menu Outils - Macros - Exécuter la 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)
    

Boîtes de dialogue incorporées au document

L'exemple ci-dessous ouvre une nouvelle boîte de dialogue éditée Dialog1 à partir d'un document avec le menu Outils - Macro - Exécuter la macro :


        # -*- coding: utf-8 -*-
        from __future__ import unicode_literals
            
        def docDialog():
            """ Affiche une boîte de dialogue basée sur un document """
            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,)
    

Référez-vous à msgbox.py dans le répertoire {installation}/program/ pour des exemples de boîtes de dialogue dynamiques en Python.