Περιεχόμενα
Δείκτης 🔎︎

# Είσοδος/Έξοδος στην οθόνη

Το τυπικό αρχείο εξόδου Python δεν είναι διαθέσιμο κατά την εκτέλεση μακροεντολών Python από το μενού Εργαλεία – Μακροεντολές – Εκτέλεση μακροεντολής... .Η εμφάνιση της εξόδου ενός αρθρώματος απαιτεί διαδραστική κονσόλα Python. Χαρακτηριστικά όπως input(), print(), repr() και str() είναι διαθέσιμα από το κέλυφος Python.

Η επέκταση Alternative Python Script Organizer (APSO) προσφέρει μια λειτουργία msgbox() από το άρθρωμά του apso_utils.

Το LibreOffice Basic προτείνει λειτουργίες εισόδου/εξόδου οθόνης InputBox(), Msgbox() και Print(). Εναλλακτικές στο Python υπάρχουν που βασίζονται είτε στο LibreOffice API Abstract Windowing Toolkit, είτε στις κλήσεις συναρτήσεων του Python σε Basic. Οι δεύτερες προτείνουν σύνταξη που εσκεμμένα είναι κοντά στη Basic και χρησιμοποιεί άρθρωμα Python δίπλα σε άρθρωμα Basic. Το πλαίσιο API Scripting χρησιμοποιείται για την εκτέλεση κλήσεων διαγλωσσικών συναρτήσεων Basic, Beanshell, JavaScript και Python.

## Σύνταξη Python:

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

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

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

>>> ui.Print(age)

## Εγκατάσταση:

- Αντιγράψτε το άρθρωμα Python screen_io στο Οι μακροεντολές μου (My macros) μέσα στο <UserProfile>/Scripts/python/pythonpath,

- Αντιγράψτε το άρθρωμα Basic uiScripts στην τυπική βιβλιοθήκη Basic Οι μακροεντολές μου (My macros),

- Επανεκκινήστε το LibreOffice.

### Άρθρωμα Python screen_io

            # -*- coding: utf-8 -*-
            from __future__ import unicode_literals

            def MsgBox(prompt: str, buttons=0, title='LibreOffice') -> int:
                """ Εμφανίζει ένα πλαίσιο διαλόγου που περιέχει μήνυμα και επιστρέφει μία τιμή. """
                xScript = _getScript("_MsgBox")
                res = xScript.invoke((prompt,buttons,title), (), ())
                return res[0]

            def InputBox(prompt: str, title='LibreOffice', defaultValue='') -> str:
                """ Εμφανίζει μια προτροπή σε πλαίσιο διαλόγου στο οποίο ο χρήστης μπορεί να εισάγει το κείμενο."""
                xScript = _getScript("_InputBox")
                res = xScript.invoke((prompt,title,defaultValue), (), ())
                return res[0]

            def Print(message: str):
                """ Εξάγει τις συγκεκριμένες συμβολοσειρές ή αριθμητικές παραστάσεις σε πλαίσιο διαλόγου. """
                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

### Άρθρωμα Basic 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

Σχετικά θέματα

Λειτουργίες εισόδου/εξόδου οθόνης

παραδείγματα προγραμματισμού Python

Βοήθεια δεσμών ενεργειών Python του LibreOffice