LibreOffice 7.1 laguntza
Pythonen irteera-fitxategi estandarra ez dago erabilgarri Python makroak input(), print(), repr() eta str() eta beste zenbait eginbide Python shell-ean soilik daude erabilgarri.
... menutik exekutatzen direnean. Modulu baten irteera erakusteko, Pythonen shell interaktiboa behar da.The Alternative Python Script Organizer (APSO) hedapenak msgbox() funtzio bat eskaintzen du apso_utils moduluan.
LibreOffice Basic lengoaiak InputBox(), Msgbox() eta Print() funtzioak proposatzen ditu pantailaren sarrerarako/irteerarako. Badaude horretarako Pythonen ordezkoak, LibreOffice API Abstract Windowing Toolkiten oinarritutakoak edo Pythonetik Basic-erako funtzio-deietan oinarritutakoak. Azkenak proposatzen duen sintaxia Basic lengoaiarenaren antzekoa da, nahita, eta Basic modulu baten hurbilekoa den Python modulu bat erabiltzen du. API Scripting Framework erabiltzen da Basic, BeanShell, JavaScript eta Python lengoaien arteko funtzio-deiak gauzatzeko.
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)
Kopiatu screen_io Python modulua Nire makroak karpetan, <UserProfile>/Scripts/python/pythonpath barruan,
Kopiatu uiScripts Basic modulua Nire makroak Standard Basic liburutegian,
Berrabiarazi LibreOffice.
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
def MsgBox(prompt: str, buttons=0, title='LibreOffice') -> int:
""" Mezu bat duen elkarrizketa-koadro bat bistaratzen du eta balio bat itzultzen du."""
xScript = _getScript("_MsgBox")
res = xScript.invoke((prompt,buttons,title), (), ())
return res[0]
def InputBox(prompt: str, title='LibreOffice', defaultValue='') -> str:
""" Gonbita bistaratzen du elkarrizketa-koadro batean, erabiltzaileak testua sartu ahal izateko."""
xScript = _getScript("_InputBox")
res = xScript.invoke((prompt,title,defaultValue), (), ())
return res[0]
def Print(message: str):
"""Elkarrizketa-koadroan zehaztutako kateak edo zenbakizko adierazpenak ematen ditu."""
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
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