LibreOffice SymbolLibreOffice Symbol

Necessitamos da sua ajuda!

msgbox módulo

Para aceder a este comando...

Abra o menu Ferramentas - Macros - Gestor de Macros.


Descrição

Os métodos da classe MsgBox no módulo msgbox do Python simplificam a criação de caixas de mensagem utilizando os recursos da API do Abstract Windowing Toolkit. O construtor MsgBox cria uma caixa de diálogo vazia para ser preenchida com botões e textos.

Ícone de aviso

Este módulo não faz parte da API UNO suportada. A exibição no ecrã através do módulo msgbox deve limitar-se a situações de desenvolvimento ou teste.


Ícone da dica

A realização de entradas e saídas para o ecrã com Python pode ser conseguida utilizando a API LibreOfficeDev UNO, recorrendo ao ScriptForge. Rotinas de serviço básicas do ou utilizando chamadas entre linguagens Python e Basic, conforme descrito na wiki.


Características

Nome

Readonly

Tipo

Descrição

numberOfLines

Não

Boolean

Substitui, opcionalmente, a altura de renderização da caixa de diálogo.


Métodos

Lista de métodos da classe MsgBox

addButton

renderFromBoxSize

renderFromButtonSize

show


addButton

Adicionar um botão a um objeto MsgBox().

Sintaxe:

addButton(caption: str)

Parâmetros:

legenda: Legenda do botão.

Exemplo:

Veja abaixo um exemplo detalhado.

renderFromBoxSize

Define as dimensões da caixa de diálogo MsgBox, bem como o tamanho dos botões, de acordo com um tamanho especificado.

Sintaxe:

renderFromBoxSize(size=150)

Parâmetros:

tamanho: Tamanho da caixa de diálogo.
Largura: ( 2 * tamanho ) / ( 3 * númeroDebotões + 1 )
A altura é definida de acordo com o número de separadores Nova linha no texto da caixa de diálogo.

Exemplo:

Veja abaixo um exemplo detalhado.

renderFromButtonSize

Adapta as dimensões da caixa de diálogo MsgBox de acordo com um tamanho especificado para os botões.

Sintaxe:

renderFromButtonSize(size=50)

Parâmetros:

tamanho: Tamanho dos botões.
Largura: (númeroDeBotões * 1,5 + 0,5) * tamanho
A altura é definida de acordo com o número de separadores NovaLinha no texto da caixa de diálogo.

Exemplo:

Veja abaixo um exemplo detalhado.

show

Exibe variações do MsgBox, tais como caixas de informação, caixas de aviso e assim por diante.

Sintaxe:

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

Parâmetros:

mensagem: Texto exibido numa caixa de diálogo que pode conter separadores Newline.

decoração: n.d.

título: Legenda da caixa de diálogo.

Exemplo:

Veja abaixo um exemplo detalhado.

Exemplo detalhado


import uno
from msgbox import MsgBox

if uno: _CTX = uno.getComponentContext()

def my_script():
    response = msgBox('Deseja continuar?', ('Sim', 'Não', 'Cancelar'), 'Uma mensagem do 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='adaptado de msgbox.MsgBox', button='Olá', title='módulo msgbox'):
    dlg = MsgBox(_CTX)  # uno.getComponentContext()
    dlg.addButton(button)
    dlg.renderFromBoxSize(345)
    dlg.show(prompt,0,title)

g_exportedScripts = (my_script,)  # Pontos de entrada do LibreOffice
  
if __name__ == "__main__":  # ponto de entrada para IDEs
    from officehelper import SessionManager
    com SessionManager() como ctx:  # Contexto remoto do Python
      _CTX = ctx
      my_script()
Ícone da dica

ScriptForge.Basic fornece alternativas para MsgBox e InputBox cujas assinaturas correspondem de perto às das funções do Basic.