Collabora Office 24.04 Súgó
Python standard output file is not available when running Python macros from input(), print(), repr() and str() are available from the Python shell.
... menu. Presenting the output of a module requires the Python interactive console. Features such asCollabora Office msgbox Python module proposes a msgbox() method that is illustrated in Creating Event Listeners and Creating a dialog handler example pages.
A Collabora Office Basic alapértelmezett esetben a InputBox(), Msgbox() és Print() képernyő I/O funkciókat javasolja. Léteznek Python alternatívák, amelyek vagy a Collabora Office API Abstract Windowing Toolkit-re, vagy a Python-Basic függvényhívásokra támaszkodnak. Ez utóbbi egy olyan szintaxist javasol, amely szándékosan közel áll a Basic szintaxisához, és egy Basic modul mellett egy Python modult használ. Az API Scripting Framework a Basic, a BeanShell, a JavaScript és a Python nyelvek közötti függvényhívások végrehajtására szolgál.
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)
Copy screen_io Python module in My macros within <UserProfile>/Scripts/python/pythonpath,
Copy uiScripts Basic module in My macros Standard Basic library,
Collabora Office újraindítása.
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
def MsgBox(prompt: str, buttons=0, title='LibreOffice') -> int:
""" Displays a dialog box containing a message and returns a value."""
xScript = _getScript("_MsgBox")
res = xScript.invoke((prompt,buttons,title), (), ())
return res[0]
def InputBox(prompt: str, title='LibreOffice', defaultValue='') -> str:
""" Displays a prompt in a dialog box at which the user can enter text."""
xScript = _getScript("_InputBox")
res = xScript.invoke((prompt,title,defaultValue), (), ())
return res[0]
def Print(message: str):
"""Outputs the specified strings or numeric expressions in a dialog box."""
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.