Een dialoogvenster met Python openen
Statische dialoogvensters van LibreOffice worden gecreëerd met de Dialoogbewerker en worden opgeslagen op verschillende plaatsen in overeenstemming met hun persoonlijke (Mijn macro’s), gedeelde (LibreOffice-macro’s) of in het document ingebedde aard. Omgekeerd, dynamische dialoogvensters worden tijdens het uitvoeren geconstrueerd, van Basic- of Python-scripts, of door gebruik te maken van een andere door LibreOffice ondersteunde taal. Het openen van statische dialoogvensters met Python wordt hierbij gedemonstreerd. Het omgaan met uitzonderingen en internationalisering worden weggelaten voor de helderheid.
Mijn Macro's of LibreOffice Macrodialoogvensters
De onderstaande voorbeelden openen de Access2Base Trace console of het geïmporteerde TutorialsDialog dialoogvenster met het 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)
Document-ingesloten dialoogvensters
Het onderstaande voorbeeld wordt een nieuw bewerkt dialoogvenster Dialog1 uit een document geopend met het menu .
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
def docDialog():
""" Geef een document-gebaseerd dialoogvenster weer """
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,)
Raadpleeg msgbox.py in de directory {installation}/program/ voor voorbeelden van dynamische dialoogvensters met Python.