Contenu
Index 🔎︎

# Ouvrir une boîte de dialogue avec Python

Les boîtes de dialogue statiques LibreOffice 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 LibreOffice) ou incorporées au document. A l'inverse, les boîtes de dialogue dynamiques sont construites au moment de l'exécution, à partir de scripts Basic ou Python, ou à l'aide de tout autre langage pris en charge par LibreOffice. 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 LibreOffice

Les exemples ci-dessous ouvrent la console Access2Base Trace ou la boîte de dialogue importée TutorialsDialog avec le menu Outils - Macros - Exécuter une 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 boîte de dialogue nouvellement éditée Dialog1 à partir d'un document avec le menu Outils - Macros - 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.

Rubriques connexes

Affichage d'une boîte de dialogue utilisant le code de programme

Exemples de programmation Python

Aide des scripts LibreOffice Python