PDF de programación - El proyecto KDE

Imágen de pdf El proyecto KDE

El proyecto KDEgráfica de visualizaciones

Actualizado el 22 de Julio del 2017 (Publicado el 14 de Enero del 2017)
892 visualizaciones desde el 14 de Enero del 2017
24,8 KB
7 paginas
Creado hace 24a (16/10/1999)
El proyecto KDE

Antonio Larrosa Jiménez

Octubre de 1999

Resumen

En esta ponencia trataré de explicar los objetivos con los que se fundó KDE. Hablaré del estado actual y del camino
que seguirá en un futuro el proyecto. Además, comentaré la facilidad con la que el programador puede desarrollar
nuevas aplicaciones usando las mas avanzadas tecnologías opensources.

Por último, explicaré la compleja organización de KDE, uno de los mas grandes proyectos en el terreno del mundo

opensource.

1 Introducción

Hace ya algunos años que existen sistemas UNIX . La mayoría de ellos son sistemas comerciales, hechos generalmente
por la misma empresa que se dedica a fabricar el hardware sobre el que se ejecutan los programas (tal es el caso de SGI,
HP, Digital, SUN, etc.).

Pero recientemente, viene siendo mas y mas habitual oir hablar de cierto sistema operativo llamado Linux en
. Qué duda cabe de que el advenimiento de las mejoras en los interfaces de

cualquier sitio (prensa, radio, tv ...)
usuario ha tenido mucho que ver en esto.

La interfaz de usuario es lo que éste ve, y por lo tanto, cuando el usuario no tiene experiencia con un programa ( y no
sabe como funciona ), es lo que le hace decidir si usar ésta u otra aplicación, que hace el trabajo de forma mas sencilla e
intuitiva.

2 Objetivos de KDE

KDE se fundó para poner orden en ese tiempo en que cada aplicación de UNIX funcionaba y tenían un aspecto distintos
al resto, lo que hacía que el usuario tuviera una curva de aprendizaje muy resbaladiza.

Los principales objetivos de KDE son :

Proveer a los sistemas UNIX de un entorno abierto, amigable, potente, seguro y estable.

Desarrollar librerías abiertas que faciliten y potencien la labor creativa del programador.

Describir estándares para hacer aplicaciones mas intuitivas, homogéneas y fáciles de usar para el usuario inexperto

a la vez que potentes y productivas para el usuario avanzado.

Crear un modelo de componentes o aplicaciones que puedan ser usadas dentro de otros programas usando la nueva

tecnología Kanossa

El primero de los puntos de arriba es muy importante, ya que el usuario de cualquier sistema espera todas esas

características de su ordenador.

El segundo de los puntos es igualmente importante, porque si un programador quiere hacer un programa, y puede
reutilizar código que ya haya escrito otra persona, está aprovechando su tiempo para dedicarlo exclusivamente a escribir
nuevo código para su programa y a depurar el programa para que sea más estable. En la sección x**** ?? daré ejemplos
mas extensos de programación bajo KDE.

El tercer punto hace referencia a los estándares que deben seguir los programas que sean escritos usando las librerías
del proyecto para que sean considerados como programas comformes a los estándares de KDE. Dichos estándares
especifican cosas como la posición de los elementos dentro de la estructura del menú, la colocación de los botones en
un diálogo, la preferencia por hacer todos los programas transparentes a la red, de forma que el usuario pueda abrir un
fichero local de la misma manera que abre un fichero que está en otra parte del mundo (usando ftp, http u otros), etc.

Para más información sobre los estándares de usuario, recomiendo leer las páginas de ***** en http://****

1

En el último punto, se habla de una nueva tecnología llamada Kanossa. Torben Weis, creador de la tecnología
KOM/Openparts, que lleva usandose desde hace más de un año en proyectos como la suite KOffice, pensó en rediseñar
todas estas especificaciones y librerías . Fruto de este rediseño , aparece Kanossa, un sistema para hacer aplicaciones y
documentos que pueden empotrarse (embeeded) en otras rapidamente y de forma sencilla para el programador.

Gracias a Kanossa, un programa puede exportar su interfaz de usuario, de forma que cuando otra aplicación lo

necesita, puede utilizarla, añadiendo entradas en los menús, y botones en las barras de herramientas, por ejemplo.

Actualmente, muchos de estos objetivos se cumplen ampliamente, otros, en cambio, no se cumplen del todo, y es ahí

donde KDE 2.0 va a poner todo su esfuerzo.

3 Nuevas tecnologías en KDE

KDE 2.0 va a romper esquemas en el mundo de los entornos de escritorio, introduciendo nuevas tecnologías que hacen
mucho mas efectivo el uso del ordenador.

Una de estos avances es el ya mencionado Kanossa. Kanossa es una librería abierta que provee de todas las fun-
cionabilidades necesarias para meter unas aplicaciones dentro de otras de forma que las interfaces de usuario de ambos
programas se mezclan de forma controlada para que actuen como si fueran uno sólo.

La principal característica de Kanossa es la impresionante velocidad con que realiza todas las operaciones. Gracias
a estar totalmente libre de usar Corba y al tremendo esfuerzo de Torben Weis, además los programas no sólo se ejecutan
mas rápido, sino que compilan mas rápido . El código es mucho mas legible también ya que usa un fichero xml para
definir la interfaz de usuario ( los menús y botones de la barra de tareas por ejemplo ), haciendo mucho mas fácil la
tarea "rutinaria" del programador para que pierda su tiempo en cosas útiles (o eso se espera :-) ). Además, para poner un
ejemplo de la facilidad que Kanossa proporciona, se puede decir que sólo añadiendo 5 lineas de código a un programa
ya existente, se le puso un navegador entero empotrado dentro de una ventana.

DCOP (Desktop COmmunication Protocol) es el protocolo que usa KDE 2.0 para la comunicación entre procesos.
KDE 1.0 usaba X Atoms por medio de kwmcom para que distintas aplicaciones pudieran comunicarse, pero esto tenía
ciertos problemas, como el tamaño limitado de los mensajes.

La nueva solución, DCOP, opera sobre sockets (tanto UDS como TCP/IP) y está construido sobre el protocolo Inter

Client Exchange (ICE) que es una parte estandar de X11R6 y posteriores.

Como ejemplo de la facilidad con la que un programa se puede comunicar con otro, es bastante conveniente enseñar

un poco de código fuente :

QByteArray parametros, respuesta;
QDataStream stream(parametros, IO_WriteOnly);
parametros << 5;
if (!cliente->call("AppId", "ciertoObjeto", "QString ciertaFuncion(int)",

kdebug(KDEBUG_ERROR, 0, "Error usando DCOP.");

parametros, respuesta))

else {

QDataStream stream2(respuesta, IO_ReadOnly);
QString resultado;
stream2 >> resultado;
print("el resultado es: %s",resultado.latin1());

Y el mismo código es bastante auto explicativo. Simplemente, cualquier objeto que se quiera pasar a otra aplicación,
se redirige a un stream y después se manda el stream por medio de una simple llamada a una función. Una nota
importante a decir es que todas las clases de Qt (así como muchas de KDE) soportan streams de este modo.

Otra de las nuevas aportaciones que KDE 2.0 hará al mundo Unix es un entorno de escritorio totalmente compatible
con Unicode y por tanto capaz de mostrar caracteres latinos, orientales, arábigos, etc. De esta forma, cualquier usuario
de cualquier parte del mundo podrá tener un sistema Linux (o UNIX en general) completamente regionalizado.

Una de las nuevas características de KDE 2.0 será el soporte de temas "reales", no sólo se pueden cambiar los colores
y bordes de las ventanas, ni tampoco se restringe a permitir cambiar los pixmaps de cada elemento de la pantalla (como
botones, o menús) . Los nuevos temas de KDE 2.0 permiten (además de todo eso) controlar el comportamiento de los
objetos así como la forma de éstos (pudiendo por ejemplo poner los botones de una barra de desplazamiento en cualquier
parte de esta dependiendo del tema seleccionado).

La forma de crear nuevos temas es realmente sencilla pues existe un diseñador de temas que ayuda a los no progra-
madores a hacer sus propios temas . Además, los programadores que deséen programar un tema (que cambie algo más
que la apariencia de otro ya existente) , sólo tienen que derivar de una clase e implementar sus propios algoritmos para
todas las funcionalidades que los temas ofrecen.

2

Otro de los puntos a destacar dentro de KDE es la implantación de DOM (Document Object Model) tanto en la

reescrita librería khtml (la encargada de visualizar un documento html) como en la suite KOffice.

Para terminar esta sección, habría que comentar que todas estas nuevas tecnologías están usandose ya en la suite
KOffice1. KOffice se compone de un procesador de textos, KWord; un programa para hacer presentaciones, KPresenter;
una hoja de cálculo, KSpread; una base de datos, Katabase; un programa de diseño vectorial, KIllustrator; un programa
de retoque fotográfico, KImageShop; un editor de ecuaciones, KFormula, etc.

Algunos de estos programas se encuentran ya en una fase en la que son totalmente funcionales, (como es el caso de
KWord y KPresenter), mientras que otros son todavía versiones muy tempranas ya que se han empezado a desarrollar
mas tarde.

Haciendo uso de Kanossa, se puede incluir un documento de un programa dentro de un documento de otro, de forma
transparente para el usuario, que se encuentra con todas las opciones del programa "empotrado" dentro de la misma
estructura demenús del programa original. Así se consigue por ejemplo, tener una hoja de cálculo hecha con KSpread
dentro de un documento de KWord, un documento de KWord dentro de una presentación, etc.

4 Introducción a la programación bajo KDE/Qt

En esta sección voy a explicar un poco como se programa en KDE/Qt, cosa que es realmente sencilla. Cualquiera que
quiera programar usando dichas librerías no tendrá excusa después de haber leido este apartado :-)

Como base fundamental, sólo se requiere conocimientos de C++. Quien lo desée, también puede programar para
KDE usando los bindings que hay para Perl, Python, C, u otros, pero estos temas se salen del ámbito de esta introducción.

Ejemplo 1. Hola Mundo en Qt
main.cpp :

------------------
#include <qapplication.h>
#include <qpushbutton.h>

int main( int argc, char **argv )
{

QApplication *a=new QApplication( argc, argv );

QPushButton *hola=new QPush
  • Links de descarga
http://lwp-l.com/pdf1390

Comentarios de: El proyecto KDE (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad