PDF de programación - VACL para KDE3: Manual del desarrollador

<<>>
Imágen de pdf VACL para KDE3: Manual del desarrollador

VACL para KDE3: Manual del desarrolladorgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 22 de Noviembre del 2017)
199 visualizaciones desde el 22 de Noviembre del 2017
161,7 KB
19 paginas
VACL para KDE3: Manual del

desarrollador

Francisco José Calvo Fernández

VACL para KDE3: Manual del desarrollador
por Francisco José Calvo Fernández

Este documento describe el proceso de construcción del tercer prototipo del sistema VACL basado en KDE3, QT3 y
DCOP.

Tabla de contenidos

1. Generación.............................................................................................................................................. 1
1.1. VACL GUI .................................................................................................................................. 1
1.1.1. Construcción................................................................................................................... 1
1.1.2. Modificaciones básicas en la clase vacl_gui .................................................................. 2
1.1.2.1. DCOP................................................................................................................. 2
1.1.2.2. SystemTray ........................................................................................................ 3
1.1.2.3. Iconos................................................................................................................. 4
1.1.2.4. Diseño del widget principal ............................................................................... 4
1.1.2.5. Barras de aplicación (XMLGUI) ....................................................................... 4
1.1.3. Procedimientos y propiedades........................................................................................ 5
1.1.3.1. Propiedades clase vacl_gui ................................................................................ 6
1.1.3.2. Procedimientos clase vacl_gui........................................................................... 6
1.1.4. Compilación e instalación .............................................................................................. 7
1.2. VACL Demo Plugin .................................................................................................................... 8
2. VACL FW Plugin ................................................................................................................................... 9
2.1. Construcción ............................................................................................................................... 9
2.2. Modificaciones básicas en la clase vacl_fw .............................................................................. 11
2.3. Procedimientos y propiedades .................................................................................................. 12
2.3.1. Propiedades clase vacl_fw ............................................................................................ 12
2.3.2. Procedimientos de la clase vacl_fw .............................................................................. 12
3. Internacionalización ............................................................................................................................ 13
4. Análisis de funcionamiento ................................................................................................................. 14
5. TO-DO .................................................................................................................................................. 15
5.1. VACL GUI ................................................................................................................................ 15

iii

Tabla de figuras

1-1. Tipo de proyecto Simple Designer based KDE Application ................................................................1
2-1. Tipo de proyecto KDE DCOP Service ............................................................................................... 10

iv

Capítulo 1. Generación

Para este primer prototipo se ha seleccionado el entorno de desarrollo KDevelop 3.1
(http://www.kdevelop.org), que por diversos motivos1 no se utilizó en los dos prototipos anteriores.

1.1. VACL GUI

1.1.1. Construcción

Este sistema es el encargado de interactuar con el usuario, con él conectarán los módulos o plugins
encargados de realizar tareas de más bajo nivel. La conexión se realiza mediate DCOP.

Para su construcción se ha usado KDevelop 3.1, el tipo de proyecto seleccionado es el llamado Simple
Designer based KDE Application, lo que nos permitirá comenzar a trabajar de forma cómoda con la
interfaz inicial utilizando el sistema KPart Designer de esta versión de KDevelop, además no genera
código supérfluo, evitando así cierta sobrecarga de código basura.

Figura 1-1. Tipo de proyecto Simple Designer based KDE Application

El código generado contiene las siguientes clases:

1

Capítulo 1. Generación

1. La clase principal del programa llamada vacl_gui, para la que se generan dos ficheros, la cabecera y

la implementación (vacl_gui.h y vacl_gui.cpp)

2. La clase generada visualmente mediante el plugin del designer, denominada vacl_guiWidgetBase, a

esta clase no se le toca vía código ya que éste es dináminco generado a partir del designer.

3. Una clase que deriva de la creada por Designer denominada vacl_guiWidget de forma que se

especialicen los métodos ahí implementados. Esta clase representa el widget central de la aplicación.
Para ella se generan dos ficheros, la cabecera y la implementación (vacl_guiwidget.h y
vacl_guiwidget.cpp), aquí se implementarán los métodos definidos por Designer (por
especialización).

En el fichero principal main.cpp la aplicación ha sido transformada en aplicación única (necesario incluir
la cabecera kuniqueapplication.h: (No de momento, da problemas con DCOP)

// KApplication app;

KUniqueApplication app;

1.1.2. Modificaciones básicas en la clase vacl_gui

Nosotros hemos instanciado la clase vacl_guiWidget en un objeto llamado widgetCentral (variable
privada) en la clase vacl_gui para poder acceder así a los objetos públicos de este widget de forma
cómoda.

private:

/** Creamos esta instancia para que sea accedida de forma

más simple por esta clase. */

vacl_guiWidget *widgetCentral;

En el constructor de la clase vacl_gui se instanció la clase vacl_guiWidget cambiando:

// Fijamos como widget central lo generado con Designer

setCentralWidget( new vacl_guiWidget( this ) );

por la instanciación en el objeto widgetCentral anteriormente comentado:

// Fijamos como widget central lo generado con Designer

widgetCentral = new vacl_guiWidget( this );
setCentralWidget( widgetCentral );

1.1.2.1. DCOP

Para dotar de soporte DCOP al programa se ha incluido la cabecera dcopobject.h en el fichero
vacl_gui.h. La clase vacl_gui además de derivar de KMainWindow ahora también lo hace de
DCOPObject, con lo cual ya podemos servir procedimientos a través de DCOP. Dentro de esta clase se
ha realizado una llamada a la macro K_DCOP.

class vacl_gui : public KMainWindow, virtual public DCOPObject

2

{

Q_OBJECT

K_DCOP

Capítulo 1. Generación

En en constructor de dicha clase ha sido necesario invocar al constructor no sólo de KMainWindow, sino
también de DCOPObject, éste recibe el nombre del objeto público que servirá procedimientos, en
nuestro caso interfazdeServicios.

// Hemos de derivar también de DCOPObject para definir
// exactamente el nombre del objeto que genera procedimientos DCOP
vacl_gui::vacl_gui()

: KMainWindow( 0, "vacl_gui" ), DCOPObject("interfazdeServicios")

Para que el proceso de compilación invoque a dcopidl y a dcopidl2cpp simplemente se ha añadido
vacl_gui.skel al Makefile.am del directorio src:

# the application source, library search path, and link libraries
vacl_gui_SOURCES = main.cpp vacl_gui.cpp vacl_guiwidget.cpp
vacl_guiwidgetbase.ui vacl_gui.skel

Los procedimientos accesibles vía DCOP se agrupan en k_dcop dentro de la definición de la clase en el
fichero vacl_gui.h. Éstos se estudiarán posteriormente.

1.1.2.2. SystemTray

La aplicación es capaz de ocultarse en un icono dentro del panel de KDE, para ello ha sido necesario
incluir ksystemtray.h dentro del archivo de definición de la clase principal vacl_gui, se ha definido un
objeto privado denominado systray que hace referencia al docking de la aplicación.

private:

/** Docking de la aplicación */
KSystemTray *systray;

Ya en el constructor de la clase vacl_gui es necesario realizar la instanciación y fijar algunas propiedades
del docking, como por ejemplo el icono a utilizar (ver siguiente apartado). Para concluir es necesario
mostrar dicho dock mediante show().

Si se deseara que la aplicación comenzará iconizada es necesario llamar al procedimiento setInactive()
del objeto anterior.

/*** Creación del dock ***/

systray = new KSystemTray(this,"vacl_gui");
systray->setPixmap( systray->loadIcon( "vacl_gui" ) );

// Esto permite ocultar la ventana principal al arrancar
//systray->setInactive();

3

Capítulo 1. Generación

systray->show();
/*** Fin dock ***/

1.1.2.3. Iconos

Se han creado dos iconos en formato PNG, uno de un tamaño de 16x16 y otro de 32x32, inicialmente
con el logo del proyecto. En futuras versiones este icono cambiará, si eres un manitas en esto tu ayuda
será bienvenida.

Los iconos se han de almacenar el en directorio src y tienen como nombre:

• hi16-app-vacl_gui.png

• hi32-app-vacl_gui.png

Tras realizar la instalación de la aplicación el icono puede ser referenciado con el nombre vacl_gui sin
extensión, tal y como vemos en el código anterior.

1.1.2.4. Diseño del widget principal

1.1.2.5. Barras de aplicación (XMLGUI)

La construcción de los elementos principales de la interfaz se realiza mediante el potente sistema xmlgui
de KDE. Para ello, KDevelop crea un fichero llamado vacl_guiui.rc, es un fichero XML y en él se
describen los componentes de la aplicación, en nuestro caso la barra de menú (MenuBar) y la barra de
herramientas (ToolBar). La descripción y el texto de la aplicación está en Inglés. A continuación
presentamos la primera versión del fichero RC:

<!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
<kpartgui name="va
  • Links de descarga
http://lwp-l.com/pdf7635

Comentarios de: VACL para KDE3: Manual del desarrollador (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad