5.1 KiB
Crear cuadros de diálogo
create
Desde "Mis Macros"
Si el cuadro de diálogo esta en la librería Standard
.
def crear_cuadro_de_dialogo1():
propiedades = {
'Location': 'user',
'Name': 'Dialog1',
}
dialog = app.dialog.create(propiedades)
dialog.open()
return
Si el cuadro de diálogo esta en otra librería.
def crear_cuadro_de_dialogo2():
propiedades = {
'Location': 'user',
'Library': 'MiAplicacion',
'Name': 'Dialog1',
}
dialog = app.dialog.create(propiedades)
dialog.open()
return
Dentro de un archivo
Si el cuadro de diálogo esta en el documento activo en la librería Standard
.
def crear_cuadro_de_dialogo3():
propiedades = {
'Location': 'document',
'Name': 'Dialog1',
}
dialog = app.dialog.create(propiedades)
dialog.open()
return
Si el cuadro de diálogo esta en otro documento en la librería Standard
.
def crear_cuadro_de_dialogo4():
documento = app.docs['OtroArchivo.ods']
propiedades = {
'Location': 'document',
'Document': documento,
'Name': 'Dialog1',
}
dialog = app.dialog.create(propiedades)
dialog.open()
return
Desde archivo
Crear un cuadro de diálogo desde un archivo xdl
previamente creado desde el editor de cuadros de diálogo dentro de LibreOffice y exportado a un archivo.
def crear_cuadro_de_dialogo():
path = '/home/elmau/Desktop/mi_dialogo.xdl'
propiedades = {'Path': path}
dialog = app.dialog.create(propiedades)
dialog.open()
return
Crear dinámicamente
Crear un cuadro de diálogo vacío.
def crear_cuadro_de_dialogo():
dialog = app.dialog.create()
dialog.open()
return
Cambiar las propiedades iniciales.
propiedades = dict(
Name = 'MiDialogo',
Title = 'Maldito Mundo',
Width = 200,
Height = 100,
)
dialog = app.dialog.create(propiedades)
dialog.open()
!!! tip Importante
Cualquier propiedad usada al crear el cuadro de diálogo, debe ser la original del control pyUNO.
Propiedades
Nombre | Descripción |
---|---|
AllDialogChildren | |
BackgroundColor | Color de fondo |
Closeable | Permite cerrar el cuadro de diálogo con el icono X |
Decoration | |
DefaultControl | |
DesktopAsParent | |
DialogSourceURL | |
Enabled | |
FontCharWidth | |
FontCharset | |
FontDescriptor | |
FontEmphasisMark | |
FontFamily | |
FontHeight | |
FontKerning | |
FontName | |
FontOrientation | |
FontPitch | |
FontRelief | |
FontSlant | |
FontStrikeout | |
FontStyleName | |
FontType | |
FontUnderline | |
FontWeight | |
FontWidth | |
FontWordLineMode | |
Graphic | |
HScroll | |
Height | Altura del control |
HelpText | |
HelpURL | |
ImageURL | |
Moveable | |
Name | Nombre del control |
PositionX | Posición en el eje X |
PositionY | Posición en el eje Y |
ResourceResolver | |
ScrollHeight | |
ScrollLeft | |
ScrollTop | |
ScrollWidth | |
Sizeable | Si el control cambia de tamaño |
Step | |
TabIndex | |
Tag | |
TextColor | |
TextLineColor | |
Title | Título del cuadro de diálogo |
VScroll | Mostrar barra de desplazamiento vertial |
Width | Ancho del control |
add_control
Agrega un control al cuadro de diálogo.
propiedades = {
'Type': 'label',
'Name': 'lbl_info',
'Label': 'Esta es una etiqueta.',
'Width': 100,
'Height': 15,
'Border': 1,
'X': 5,
'Y': 5,
}
dialog.add_control(propiedades)
Eventos
Todos los eventos de todos los controles de un cuadro de diálogo se controlan por medio de una clase Python que se pasa a la propiedad events
del cuadro de diálogo.
Cada método de esta clase que tenga en su nombre la estructura que corresponde al nombre del control más el nombre del evento, responderá a dicho evento de dicho control.
NOMBRE_CONTROL_NOMBRE_EVENTO
Ejemplo:
import easymacro as app
class Eventos():
def __init__(self, dialog):
self.d = dialog
def cmd_cerrar_action(self, event):
self.d.close(1)
return
def main():
propiedades = dict(
Name = 'MiDialogo',
Title = 'Maldito Mundo',
Width = 200,
Height = 100,
)
dialog = app.dialog.create(propiedades)
dialog.events = Eventos
propiedades = {
'Type': 'button',
'Name': 'cmd_cerrar',
'Label': 'Cerrar',
'Width': 40,
'Height': 15,
}
dialog.add_control(propiedades)
dialog.open()
return
Cada control agregado al cuadro de diálogo es instanciado como una propiedad del mismo cuadro de diálogo. En el ejemplo anterior, el botón de comando cmd_cerrar
es accesible desde cualquier variable que apunte al cuadro de diálogo, en el mismo ejemplo anterior en:
dialog.cmd_cerrar
Como en la clase Eventos
en:
self.d.cmd_cerrar