Sarrera/irteera pantailara

Pythonen irteera-fitxategi estandarra ez dago erabilgarri Python makroak Tresnak – Makroak - Exekutatu makroa... menutik exekutatzen direnean. Modulu baten irteera erakusteko, Pythonen shell interaktiboa behar da. input(), print(), repr() eta str() eta beste zenbait eginbide Python shell-ean soilik daude erabilgarri.

Iradokizun-ikonoa

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.

Python sintaxia:

MsgBox(txt, buttons=0, title=None)

InputBox(txt, title=None, default=None)

Print(txt)

Adibideak:

>>> 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)

Instalazioa:

screen_io Python modulua


        # -*- 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
    

uiScripts Basic modulua


        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
    

Emaguzu laguntza!