Bitte unterstützen Sie uns!

Modul msgbox

Auf diesen Befehl zugreifen …

Extras – Makros – Makro verwalten… öffnen.


Beschreibung

Die Klassenmethoden von MsgBox im Python-Modul msgbox vereinfachen die Erstellung von Meldungsfenstern unter Verwendung der Funktionen der Abstract Windowing Toolkit-API. Der Konstruktor von MsgBox erzeugt einen leeren Dialog, der anschließend mit Schaltflächen und Texten vervollständigt wird.

Warnsymbol

Dieses Modul ist nicht Bestandteil der unterstützten UNO-API. Die Bildschirmausgabe mittels des Moduls msgbox sollte auf Entwicklungs- oder Testszenarien beschränkt bleiben.


Tippsymbol

Ein- und Ausgaben auf dem Bildschirm lassen sich mit Python über die LibreOfficeDev UNO-API realisieren, indem auf die Dienstroutinen von ScriptForge.Basic zurückgegriffen wird oder – wie im Wiki beschrieben – Aufrufe zwischen Python und Basic genutzt werden.


Eigenschaften

Name

Schreibgeschützt

Typ

Beschreibung

numberOfLines

Nein

Boolean

Überschreibt optional die gerenderte Höhe des Dialogs.


Methoden

Liste der Methoden in der Klasse MsgBox

addButton

renderFromBoxSize

renderFromButtonSize

show


addButton

Einem Objekt "MsgBox()" eine Schaltfläche hinzufügen.

Syntax:

addButton(caption: str)

Parameter:

caption: Schaltflächenbeschriftung.

Beispiel:

Siehe das detaillierte Beispiel unten.

renderFromBoxSize

Legt die Abmessungen des Dialogs MsgBox sowie die Größe der Schaltflächen entsprechend einer vorgegebenen Größe fest.

Syntax:

renderFromBoxSize(size=150)

Parameter:

size: Größe des Dialogs.
Breite: ( 2 * size ) / ( 3 * numberOfbuttons + 1 )
Die Höhe wird entsprechend der Anzahl der Trennzeichen Newline im Dialogtext festgelegt.

Beispiel:

Siehe das detaillierte Beispiel unten.

renderFromButtonSize

Passt die Abmessungen des Dialogs MsgBox an eine festgelegte Schaltflächengröße an.

Syntax:

renderFromButtonSize(size=50)

Parameter:

size: Größe für Schaltflächen.
Breite: (numberOfButtons * 1,5 + 0,5) * size
Die Höhe richtet sich nach der Anzahl der Trennzeichen Newline im Dialogtext.

Beispiel:

Siehe das detaillierte Beispiel unten.

show

Zeigt Varianten von MsgBox an, wie beispielsweise Informationsfeld, Warnfeld und so weiter.

Syntax:

show(message: str, decoration, title: str): str

Parameter:

message: Vom Dialog ausgelöster Text, der Trennzeichen Newline enthalten kann.

decoration: n.v.

title: Dialogbeschriftung.

Beispiel:

Siehe das detaillierte Beispiel unten.

Detailliertes Beispiel


import uno
from msgbox import MsgBox

if uno: _CTX = uno.getComponentContext()

def my_script():
    response = msgBox('Fortfahren?',('Ja', 'Nein', 'Abbrechen'),'Eine Nachricht von Python')
    infoBox(button=response)

def msgBox(prompt='', buttons=('Ok',), title='') -> str:
    dlg = MsgBox(_CTX)  # uno.getComponentContext()
    for btn in buttons:
        dlg.addButton(btn)
    dlg.renderFromButtonSize()
    dlg.numberOfLines = 15
    return dlg.show(prompt,0,title)
  
def infoBox(prompt='adaptiert von msgbox.MsgBox', button='Hallo', title='Modul msgbox'):
    dlg = MsgBox(_CTX)  # uno.getComponentContext()
    dlg.addButton(button)
    dlg.renderFromBoxSize(345)
    dlg.show(prompt,0,title)

g_exportedScripts = (my_script,)  # LibreOffice-Einstiegspunkte
  
if __name__ == "__main__":  # Einstiegspunkt für IDEs
    from officehelper import SessionManager
    with SessionManager() as ctx:  # Python-Remote-Kontext
      _CTX = ctx
      my_script()
Tippsymbol

Der Dienst ScriptForge.Basic stellt Alternativen zu MsgBox und InputBox bereit, deren Signaturen denen der Basic-Funktionen weitgehend entsprechen.