Ajuda do LibreOffice 26.2
As caixas de diálogo estáticas do LibreOffice são criadas com o Editor de caixas de diálogo e são armazenadas em locais diferentes, consoante sejam pessoais (As minhas macros), partilhadas (Macros da aplicação) ou incorporadas em documentos. Por outro lado, as caixas de diálogo dinâmicas são construídas em tempo de execução, a partir de scripts Basic ou Python, ou utilizando qualquer outra LibreOffice linguagem suportada para o efeito. A abertura de caixas de diálogo estáticas com Python é ilustrada a seguir. O tratamento de exceções e a internacionalização foram omitidos por uma questão de clareza.
Os exemplos abaixo abrem a consola Access2Base Trace ou a caixa de diálogo importada TutorialsDialog através do menu :
# -*- 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)
O exemplo abaixo abre uma caixa de diálogo Dialog1 recém-editada a partir de um documento, através do menu :
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
def docDialog():
""" Mostrar uma caixa de diálogo incorporada 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.