Contenuto
Indice 🔎︎

# Aprire una finestra di dialogo usando Python

Le finestre di dialogo statiche di LibreOffice vengono create con l'editor delle finestre di dialogo e sono memorizzate in varie posizioni a seconda della loro natura personalizzata (Macro personali), condivisa (Macro di LibreOffice) o se incorporate in un documento. al contrario, le finestre dinamiche vengono costruite al tempo di esecuzione, da script Basic o Python, oppure utilizzando qualsiasi altro linguaggio supportato da LibreOffice utile a tale scopo. L'apertura delle finestre di dialogo statiche utilizzando Python è illustrata di seguito. La gestione delle eccezioni e l'internalizzazione sono omesse per questioni di chiarezza.

## Finestre di dialogo delle macro personali o delle macro di LibreOffice

Gli esempi sotto riportati aprono la console Access2Base Trace o la finestra di dialogo TutorialsDialog importata col menu Strumenti – Macro – Esegui 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)

## Finestre di dialogo incorporate nei documenti

L'esempio qui sotto apre una finestra di dialogo Dialog1 modificata di recente da un documento col menu Strumenti – Macro – Esegui macro...:

            # -*- coding: utf-8 -*-
            from __future__ import unicode_literals

            def docDialog():
                """ Visualizza una finestra di dialogo basata su un documento """
                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,)

Si riferisce alla cartella msgbox.py in {installation}/program/ per gli esempi delle finestre di dialogo dinamiche Python.

Argomenti correlati

Visualizzare una finestra di dialogo usando un codice di programma

Esempi di programmazione in Python

Guida agli script Python di LibreOffice