Conteúdo
Índice 🔎︎

# Abrir uma caixa de diálogo com Python

As caixas de diálogo estáticas do LibreOffice são criadas com o Editor de caixas de diálogo e são armazenados em vários lugares a depender da natureza pessoal (Minhas Macros), compartilhada (Macros do LibreOffice) ou embutidas em documentos. Por outro lado, caixas de diálogos dinâmicas são construídas em tempo de execução, a partir de macros Basic ou Python, ou usando qualquer outra linguagem de scripts suportada pelo LibreOffice. Abrir caixas de diálogo estáticas com Python é ilustrado abaixo. O tratamento de exceções e a internacionalização foram omitidas em favor da clareza.

## Minhas macros ou LibreOffice caixa de diálogo Macros

Os exemplos abaixo abrem o console de rastreio do Access2Base da caixa de diálogo importada TutorialsDialog com o menu Ferramentas - Macros - Executar 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)

## Caixas de diálogo embutidas em documentos

O exemplo abaixo abre uma caixa de diálogoDialog1 recém editada de um documento com o menu Ferramentas - Macros - Executar macro:

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

            def docDialog():
                """ Exibir uma caixa de diálogo embutida no 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,)

Consulte msgbox.py no diretório {installation}/program/ para exemplos de caixas de diálogo dinâmicas em Python.

Tópicos relacionados

Abrir uma caixa de diálogo no código do programa

Exemplos de programação em Python

Ajuda dos scripts Python do LibreOffice