Olá pessoal, estou querendo criar uma caixa diálogo via interface gráfica no LibreOffice Calc com mais de uma página, mas não consegui encontrar na internet. Alguém sabe se é possível e como eu faria isso? Estou anexando uma imagem pra facilitar o entendimento.
Você precisa usar a propriedade Step tanto na janela como nos controles que você deseja mostrar em cada página. O anexo é um exemplo.
Dim dialogo
Sub abrir_dialogo()
dialogo = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
dialogo.Execute()
End Sub
Sub cambiar_pagina(event)
dialogo.Model.Step = event.Source.Value
End Sub
multi_page.ods (12.0 KB)
Estou usando a biblioteca ScriptForge com Python não tenho muita experiência com programação tentei fazer isso mas não funcionou
def interface():
from scriptforge import CreateScriptService
Bas = CreateScriptService(“Basic”)
Ui = CreateScriptService(“UI”)
Doc = Ui.GetDocument(Bas.ThisComponent)
Janela = CreateScriptService(‘SFDialogs.Dialog’, Bas.ThisComponent, ‘Standard’, ‘Dialog1’)
Janela.Center(Doc)
Janela.Execute(Modal:=True)
Janela.Step = 2 (Pelo que entedi vc pega o valor do step e passa ele aqui por isso botei um número só pra testar)
Valor = Janela.Controls(‘FormattedField1’)
Bas.MsgBox(Valor.text)
Doc.dispose()
Consegui encontrar a solução na documentação
def celula():
from scriptforge import CreateScriptService
Bas = CreateScriptService("Basic")
Ui = CreateScriptService("UI")
Doc = Ui.GetDocument(Bas.ThisComponent)
Janela = CreateScriptService('SFDialogs.Dialog', Bas.ThisComponent, 'Standard', 'Dialog1')
Janela.Center(Doc)
Janela.SetPageManager(pilotcontrols = "", tabcontrols = "", wizardcontrols = "CommandButton3,CommandButton4", lastpage =3)
Janela.Execute(modal=True)
Valor = Janela.Controls('FormattedField1')
Bas.MsgBox(Valor.text)
Doc.dispose()