Vhod/izhod prek zaslona v Pythonu

Vsebina
Kazalo 🔎︎

# Zaslonski vhod/izhod

Standardna izhodna datoteka Pythona ni na voljo, ko zaženete makre Python prek menijskega ukaza Orodja – Makri - Zaženi makro. Za predstavljanje izhoda modula je potrebna interaktivna konzola Python. Funkcionalnosti, kot so input(), print(), repr() in str(), so na voljo v lupini Python.

Modul 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.

## Skladnja Pythona:

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

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

Print(txt)

## Primeri:

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

## Namestitev:

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

### Modul Pythona screen_io

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

### Modul Basica uiScripts

            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.

Podobne teme

V/I funkcije zaslona

Primeri programov v Pythonu

Pomoč LibreOffice za skripte v jeziku Python

Klicanje makrov Basic s Pythonom