Edukiak
Indizea 🔎︎

# Pantailaren sarrera/irteera

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.

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', default="here..")

>>> rc = ui.MsgBox(reply, title="Confirmation of phrase")

>>> age = ui.InputBox('How old are you?', title="Hi")

>>> ui.Print(age)

## Instalazioa:

- Kopiatu screen_io Python modulua Nire makroak karpetan, <UserProfile>/Scripts/python/pythonpath barruan,

- Kopiatu uiScripts Basic modulua Nire makroak Standard Basic liburutegian,

- Berrabiarazi LibreOffice.

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

Erlazionatutako gaiak

Pantailako sarrera/irteera funtzioak

Python programazioko adibideak

LibreOffice Python scripten laguntza