La arquitectura de componentes

KDE incluye una arquitectura de componentes llamada KParts que permite introducir unas aplicaciones dentro de otras o introducir solamente funcionalidades nuevas en una aplicación (los llamados Plugins).

KParts es por tanto la tecnología que permite que aplicaciones como Konqueror puedan usar una componente del editor de textos Kate para leer ficheros dentro del propio navegador, o usar una componente de KPresenter para ver una presentación sin necesidad de abrir KPresenter. Igualmente, KParts se usa para implementar los Plugins de Konqueror que añaden nuevas funcionalidades como por ejemplo, una entrada en el menú en el que se puede elegir a qué idioma queremos traducir (usando BableFish) la página que estamos viendo en ese momento, un plugin que lee por el altavoz la página actual (completamente o parcialmente) o un plugin que muestra la estructura interna de una página web en forma de arbol DOM (Document Object Model).

KParts además se usa en KOffice para introducir unos documentos dentro de otros de forma que se pueda tener por ejemplo una hoja de cálculo dentro de un documento de texto. Esto se hace introduciendo una componente de KSpread dentro de la propia componente de KWord. Al usar KParts no sólo se introduce un programa dentro de otro, sino que todo el interfaz de usuario (menús y barras de herramientas por ejemplo) cambia para reflejar esta ampliación de funcionalidades de la forma más correcta posible. Esto permite que el usuario encuentre por ejemplo un menú de ordenar columna por orden alfabético (que sólo debería estar disponible para la hoja de cálculo) en los menús de KWord siempre y cuando se esté editando una hoja de cálculo que haya sido insertada en un documento de KWord.

Desarrollar nuevas componentes es muy fácil gracias al diseño de KParts, de hecho, convertir una aplicación ya existente en una componente que pueda ser usada por ejemplo por Konqueror (para visualizar un tipo de archivos) no suele llevarse más de unas horas (o una tarde en el peor de los casos).