# 2.2. O que o KDE disponibiliza

## 2.2.1. As bibliotecas KDE 1.1.x

À altura deste documento e devido ao facto de o KDevelop utilizar KDE 1.1, referimo-nos ao estado das bibliotecas KDE nessa distribuição. As bibliotecas KDE principaos que irá utilizar para criar as suas próprias aplicações KDE são:

- a biblioteca KDE-Core, contendo todas as classes que são elementos não-visíveis e disponibilizam funcionalidades que a sua aplicação pode utilizar.

- a biblioteca KDE-UI, contendo elementos de interface com o utilizador tais como barras de menu, de ferramenta s e afins,

- a biblioteca KFile, contendo diálogos de selecção de ficheiros,

Adicionalmente, para soluções específicas o KDE oferece as seguintes bibliotecas:

- a biblioteca KHTMLW, oferecendo um completo widget de interpretação HTML que é utilizado por vários programas como o KDEHelp , KFM, KDevelop,

- a biblioteca KFM, permitindo a utilização do gestor de ficheiros do KDE a partir de dentro da sua aplicação.

- a biblioteca KAb, o KAddressBook. Disponibiliza acesso a livro de endereços para por ex. aplicações de e-mail

- a biblioteca KSpell, oferecendo widgets e funcionalidades para integrar a utilização do Ispell, o corrector ortográfico comum, em aplicações tais como editores; utilizado na aplicação KEdit.

De seguida, iremos observar o que é necessário para tornar a nossa primeira aplicação Qt numa KDE.

## 2.2.2. Aplicação KDE Exemplo

No seguinte código, irá ver que escrever uma aplicação KDE não é muito mais difícil que uma aplicação Qt . Para a utilização das características do KDE, apenas tem de utilizar algumas outras classes, e está quase tudo feito. Como um exemplo, iremos discutir a versão alterada do exemplo Qt dado acima:

     #include <kapp.h>
     #include <qpushbutton.h>

     int main( int argc, char **argv )
     {
     KApplication a( argc, argv );

     QPushButton hello( "Hello world!" );
     hello.resize( 100, 30 );

     a.setTopWidget( &&;hello );

     connect(&&;hello, SIGNAL( clicked() ), &&;a, SLOT( quit() ));

     hello.show();
     return a.exec();
     }

Pode ver que primeiro alteramos de `QApplication` para `KApplication`. Além disso, tivemos de modificar o método `setMainWidget()` anteriormente utilizado para `setTopWidget`, que a `KApplication` utiliza para definir o widget principal. E é tudo! A sua primeira aplicação KDE está pronta- apenas tem de dizer ao compilador o caminho dos ficheiros include do KDE e ao linker para ligar a biblioteca KDE-Core com -lkdecore.

Como você agora saber o que pelo menos a função main() disponibiliza de forma geral e como uma aplicação se torna visível e permite a interacção de utilizadores e objectos, iremos continuar com o capítulo seguinte, onde a nossa primeira aplicação é feita com o KDevelop- aí poderá também testar tudo o que foi mencionado anteriormente e verificar os resultados.

O que deverá ter consultado adicionalmente até agora é a documentação de referência da Qt , especialmente as classes `QApplication`, `QWidget` e `QObject` e a documentação da biblioteca KDE-Core para a classe `KApplication`. O manual de Referência da Biblioteca KDE também cobre uma descrição completa sobre a invocação dos construtores `QApplication` e `KApplication` incluindo processamento de argumentos de linha de comandos.