♥ Doe para nosso projeto! ♥

msgbox módulo

Para acessar este comando...

Abra o menu Ferramentas - Macros - Gerenciador 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 Aviso

Este módulo não faz parte da API UNO suportada. A exibição na tela por meio do módulo msgbox deve ser restrita a situações de desenvolvimento ou teste.


Ícone Dica

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


Propriedades

Nome

Somente leitura

Tipo

Descrição

numberOfLines

Não

Boolean

Opcionalmente, substitui a altura renderizada da caixa de diálogo.


Métodos

Lista de métodos da classe MsgBox

addButton

renderFromBoxSize

renderFromButtonSize

show


addButton

Adicione 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

Ajusta 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, como caixa de informações, caixa de aviso e assim por diante.

Sintaxe:

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

Parâmetros:

mensagem: Texto exibido em uma caixa de diálogo que pode conter separadores Nova linha.

decoração: n/a.

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='Oi', 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 Dica

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