Pomoč LibreOffice 24.8
Standardna izhodna datoteka Pythona ni na voljo, ko zaženete makre Python prek menijskega ukaza input(), print(), repr() in str(), so na voljo v lupini Python.
. Za predstavljanje izhoda modula je potrebna interaktivna konzola Python. Funkcionalnosti, kot soModul Pythona msgbox v LibreOffice ponuja metodo msgbox(), ki je ilustrirana na straneh s primeri Ustvarjanje poslušalcev dogodkov in Ustvarjanje ravnalnika pogovornega okna.
LibreOffice Basic ponuja za vhod/izhod prek zaslona funkcije InputBox(), Msgbox() in Print(). Obstajajo alternative Pythona, ki se zanašajo na Abstract Windowing Toolkit LibreOffice API, in sicer na klice funkcij Python ali Basic. Slednje ponuja skladnjo, namerno podobno tisti za Basic,in uporablja modul Python ob modulu Basic. Za izvajanje večjezikovnih klicev funkcij Basic, BeanShell, JavaScript in PythonSkriptno se uporablja ogrodje API Scripting Framework.
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)
Kopirajte modul Python screen_io v Mojih makrih v <UporabniškiProfil>/Scripts/python/pythonpath,
Kopirajte modul Basica uiScriptsv standardno knjižnico Basica Moji makri,
Ponovno zaženite LibreOffice.
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
def MsgBox(prompt: str, buttons=0, title='LibreOffice') -> int:
""" Pokaže pogovorno okno s sporočilom in vrne vrednost."""
xScript = _getScript("_MsgBox")
res = xScript.invoke((prompt,buttons,title), (), ())
return res[0]
def InputBox(prompt: str, title='LibreOffice', defaultValue='') -> str:
""" Pokaže poziv in pogovorno okno, v katerega lahko uporabnik vnese svoje besedilo."""
xScript = _getScript("_InputBox")
res = xScript.invoke((prompt,title,defaultValue), (), ())
return res[0]
def Print(message: str):
"""Izpiše določene nize ali številske izraze v pogovorno okno."""
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
Metodi MsgBox in InputBox iz storitve Basic, vključene v knjižnice ScriptForge, kličeta neposredno svoji domorodni istoimenski metodi v Basicu.
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
Razširitev Alternative Python Script Organizer (APSO) ponuja funkcijo msgbox() v svojem modulu apso_utils.