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.

tip

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:

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
    
note

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
    
tip

Razširitev Alternative Python Script Organizer (APSO) ponuja funkcijo msgbox() v svojem modulu apso_utils.


Podprite nas!