easymacro/docs/es/docs/dialogs/index.md

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

Controles


Etiqueta (label)

Botón de comando (button)