Pomoc za LibreOffice 25.2
Podawki, kotrež so přez dialogi, dokumenty, formulary abo grafiske wodźenske elementy wuwabjeja, dadáz so z makrami zwjazać, kotrež so přez podawk wodźene programowanje mjenuja. Najbóle zwučena metoda, zo by podawki z makrami do poćaha stajiła, su rajtark Podawki w meniju a wodźenske kajkosće w dialogowym editorje z menija .
Grafiske nastroje, tastaturowe zapodaća, pohiby myški a druhe interakcije mjez čłowjekom a mašinu dadźa so z pomocu UNO-posłuchakow wodźić, kotrež na zadźerženje wužiwarja kedźbuja. Posłuchaki su dynamiske alternatiwy programoweho koda za makrowe připokazanja. Dadźa so telko UNO-posłuchakow kaž podawki wutworić, na kotrež so maja kedźbować. Jednotliwy posłuchak móže tež z wjacorymi wodźenskimi elementami wužiwarskeho powjercha wobchadźeć.
Posłuchaki so k wodźenskim elementam připowěšeja, kotrež su w dialogach wobsahowane, kaž tež k dokumentowym abo formularowym podawkam. Posłuchaki so tež wužiwaja, hdyž so dialogi časa fungowanja tworja abo hdyž so dialogej wodźenske elementy za wokomik přidawaja.
Tutón přikład posłuchak za wodźenje Button1 dialoga Dialog1 w bibliotece Standard wutwori.
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import uno, unohelper
from com.sun.star.awt import XActionListener
from com.sun.star.awt import ActionEvent
from com.sun.star.lang import EventObject
from com.sun.star.ui.dialogs.ExecutableDialogResults \
import OK, CANCEL
import msgbox as util
_MY_BUTTON = "Button1"
_MY_LABEL = 'Python připoskuje.'
_DLG_PROVIDER = "com.sun.star.awt.DialogProvider"
def Main(*args):
ui = createUnoDialog("Standard.Dialog1", embedded=True)
ui.Title = "Python X[any]Listener"
ctl = ui.getControl(_MY_BUTTON)
ctl.Model.Label = _MY_LABEL
act = ActionListener()
ctl.addActionListener(act)
rc = ui.execute()
if rc == OK:
MsgBox(„Wužiwar je dialog wobkrućił.“)
elif rc == CANCEL:
MsgBox(„Wužiwar je dialog přetorhnył.“)
ui.dispose() # ui.endExecute
ctl.removeActionListener(act)
def createUnoDialog(libr_dlg: str, embedded=False):
""" Dialog z jeho městna wutworić """
smgr = XSCRIPTCONTEXT.getComponentContext().ServiceManager
if embedded:
model = XSCRIPTCONTEXT.getDocument()
dp = smgr.createInstanceWithArguments(_DLG_PROVIDER, (model,))
location = "?location=document"
else:
dp = smgr.createInstanceWithContext(_DLG_PROVIDER, ctx)
location = "?location=application"
dlg = dp.createDialog("vnd.sun.star.script:"+libr_dlg+location)
return dlg
class ActionListener(unohelper.Base, XActionListener):
""" Připosłuchać a kliknjenja tłóčatkow ličić """
def __init__(self):
self.count = 0
def actionPerformed(self, evt: ActionEvent):
self.count = self.count + 1
#mri(evt)
if evt.Source.Model.Name == _MY_BUTTON:
evt.Source.Model.Label = _MY_LABEL+ str( self.count )
return
def disposing(self, evt: EventObject): # obligatoriska rutina
pass
def MsgBox(txt: str):
mb = util.MsgBox(uno.getComponentContext())
mb.addButton("Ok")
mb.show(txt, 0, "Python")
g_exportedScripts = (Main,)
Zapis msgbox.py w {installation}/program/ někotre přikłady tłóčatkowych posłuchakow wobsahuje.
Option Explicit
Const MY_LIBRARY = "Standard", MY_DIALOG = "Dialog1", MY_BUTTON = "Button1"
Const MY_LABEL = "Basic připoskuje."
Dim count As Integer
Sub Main
Dim libr As Object ' com.sun.star.script.XLibraryContainer
Dim dlg As Object
Dim ui As Object ' stardiv.Toolkit.UnoDialogControl
Dim ctl As Object ' stardiv.Toolkit.UnoButtonControl
Dim act As Object ' com.sun.star.awt.XActionListener
Dim rc As Object : rc = com.sun.star.ui.dialogs.ExecutableDialogResults
BasicLibraries.LoadLibrary(MY_LIBRARY)
libr = DialogLibraries.GetByName(MY_LIBRARY)
dlg = libr.GetByName(MY_DIALOG)
ui = CreateUnoDialog(dlg)
ui.Title = "Basic X[any]Listener example"
count = 0
ctl = ui.GetControl(MY_BUTTON)
ctl.Model.Label = MY_LABEL
act = CreateUnoListener("awt_", "com.sun.star.awt.XActionListener")
ctl.addActionListener(act)
Select Case ui.Execute
Case rc.OK : MsgBox „Wužiwar je dialog wobkrućił.“,, "Basic"
Case rc.CANCEL : MsgBox "Wužiwar je dialog přetorhnył.",, "Basic"
End Select
ui.dispose ' ui.endExecute()
ctl.removeActionListener(act)
End Sub
Private Sub awt_actionPerformed(evt As com.sun.star.awt.ActionEvent)
""" Kliknjenja tłóčatkow připosłuchać a ličić """
With evt.Source.Model
If .Name = MY_BUTTON Then
count = count + 1
.Label = MY_LABEL+Cstr(count)
End If
End With
End Sub ' awt_actionPerformed
Private Sub awt_disposing(evt As com.sun.star.lang.EventObject) ' mandatory Sub
' waš kod sem słuša
End Sub ' awt_disposing
Posłuchaki so zwjetša hromadźe z dialogowym wočinjenjom koduje. Mnoholičbne přistupy su móžne kaž na přikład podawkowe předźěłowaki za dialogi abo podawkowe monitory za dokumenty abo formulary.