LibreOffice 24.8 žinynas
„Python“ standartinio išvesties failo naudoti negalima, kai vykdote „Python“ makrokomandas iš input(), print(), repr() ir str() randamos iš „Python“ apvalkalo.
… meniu. Norint pateikti modulio išvestį, reikia interaktyvios „Python“ konsolės. Šios savybės:LibreOffice msgbox Python module proposes a msgbox() method that is illustrated in Creating Event Listeners and Creating a dialog handler example pages.
„ LibreOffice Basic“ siūlo ekrano įvesties ir išvesties funkcijas InputBox(), Msgbox() ir Print(). „Python“ alternatyvos egzistuoja remiantis „LibreOffice API Abstract Windowing Toolkit“ arba „Python to Basic“ funkcijų iškvietimais. Pastarasis siūlo sintaksę, kuri yra tikslingai artima „Basic“, ir naudoja „Python“ modulį greta „Basic“ modulio. „API Scripting Framework“ naudojama atliekant „Basic“, „BeanShell“, „JavaScript“ ir „Python“ tarpkalbių funkcijų iškvietimus.
MsgBox(txt, buttons=0, title=None)
InputBox(txt, title=None, default=None)
Print(txt)
>>> import screen_io as ui
>>> reply = ui.InputBox('Please enter a phrase', title='Dear user', defaultValue="here..")
>>> rc = ui.MsgBox(reply, title="Confirmation of phrase")
>>> age = ui.InputBox('How old are you?', title="Hi")
>>> ui.Print(age)
Kopijuokite screen_io „Python“ modulį į Mano makrokomandos naudodami <UserProfile>/Scripts/python/pythonpath,
Kopijuokite uiScripts „Basic“ modulį į Mano makrokomandos standartinę „Basic“ biblioteką,
Paleisti „LibreOffice“ iš naujo
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
def MsgBox(prompt: str, buttons=0, title='LibreOffice') -> int:
""" Parodo dialogo langą su pranešimu ir grąžina reikšmę."""
xScript = _getScript("_MsgBox")
res = xScript.invoke((prompt,buttons,title), (), ())
return res[0]
def InputBox(prompt: str, title='LibreOffice', defaultValue='') -> str:
""" Dialogo lange rodomas raginimas, kuriame vartotojas gali įvesti tekstą."""
xScript = _getScript("_InputBox")
res = xScript.invoke((prompt,title,defaultValue), (), ())
return res[0]
def Print(message: str):
"""Nurodytų eilučių arba skaitmeninių reiškinių rezultatai dialogo lange."""
xScript = _getScript("_Print")
xScript.invoke((message,), (), ())
import uno
from com.sun.star.script.provider import XScript
def _getScript(script: str, library='Standard', module='uiScripts') -> XScript:
sm = uno.getComponentContext().ServiceManager
mspf = sm.createInstanceWithContext("com.sun.star.script.provider.MasterScriptProviderFactory", uno.getComponentContext())
scriptPro = mspf.createScriptProvider("")
scriptName = "vnd.sun.star.script:"+library+"."+module+"."+script+"?language=Basic&location=application"
xScript = scriptPro.getScript(scriptName)
return xScript
MsgBox and InputBox methods from the Basic service included in the ScriptForge libraries call directly their native Basic counterparts.
Option Explicit
Private Function _MsgBox( prompt As String, Optional buttons As Integer, _
Optional title As String ) As Integer
_MsgBox = MsgBox( prompt, buttons, title )
End Function
Private Function _InputBox( prompt As String, Optional title As String, _
Optional default As String) As String
_InputBox = InputBox( prompt, title, default )
End Function
Private Sub _Print( msg As String )
Print msg
End Sub
The Alternative Python Script Organizer (APSO) extension offers a msgbox() function out of its apso_utils module.