# 11.2. Criar um Novo Diálogo

Após criar o seu esqueleto de projecto, é-lhe disponibilizada uma aplicação pronta a correr, de acordo com as suas preferências. Como o KDevelop disponibiliza os tipos de projecto de aplicação KDE e Qt, o editor de diálogos reconhece isto e oferece a construção dos widgets através dos widgets que são disponibilizados pelas bibliotecas utilizadas. Para poupar tempo, você já deverá ter um desenho em mente do que fará as acções desejadas. Para informações sobre desenho de widget's, veja O Manual de Programação do KDevelop.

Para criar um novo diálogo, seleccione "Novo" do menu "Ficheiro" ou seleccione "Novo" do menu de contexto na pasta dos diálogos. O menu "Novo Diálogo" surge onde tem de fornecer ao KDevelop informação específica do diálogo em relação à classe base e nomes de ficheiros de código e seu destino.

## 11.2.1. Classe de Diálogo

A classe de diálogo que pode seleccionar, é a classe que é herdada pelo seu novo widget, que é tecnicamente representado por uma classe também. Assim, tem as seguintes opções:

1. QWidget: a classe base para todos os widgets com interacção do utilizador disponibilizados pela Qt. Utilizado para vistas principais e widgets de nível superior.

2. QFrame: herda QWidget e é utilizado por numerosos widgets como classe base. Este é útil para widgets que já querem ter uma funcionalidade QFrame além dos métodos QWidget.

3. Custom: herda uma classe costumizada que tem de ser definida nas "Propriedades Costumizáveis". Pode ser uma classe já desenhada disponibilizada pelo seu projecto ou pelas bibliotecas.

4. QDialog: a classe base para diálogos que desejaria herdar para interacção do utilizador tal como definir propriedades ou modificar valores.

5. QTabDialog: herda QDialog e disponibiliza um diálogo com botões pré-definidos e um conjunto de pastas, que você irá disponibilizar através dos widgets que você criar.

Propriedades Costumizáveis

Para a herança de uma classe costumizável como seleccionado no campo de diálogo de classe, tem de especificar o nome da classe, que vai para "Classe Costumizável". O editor de diálogos utiliza isto para a geração do código; assim, você também tem de inserir o "Header Costumizável", onde o ficheiro header da classe costumizável tem de ser definido.

## 11.2.2. Ficheiros

Na secção "Ficheiros", você tem de inserir a informação específica dos widget's. Esta é o nome da classe (que deverá ser por ex. KColorSelectDlg para um diálogo que permite a selecção de dores de uma caneta), o header, ficheiros C++ e o Data. Quando inserir o Nome da Classe, os nomes de ficheiros são dados pelo editor de diálogos, mas você pode também modificar os nomes de ficheiros.

Agora, e sobre os ficheiros? Quando estiver preparado com a construção de widgets visualmente, terá de gerar os ficheiros que contêm a implementação do seu widget. Como isto será uma classe, o diálogo irá existir através do ficheiro header contendo a declaração de classe, um ficheiro C++ contendo a implementação dos métodos para os métodos e espaços do widget. O ficheiro Data é o ficheiro que conterá a função que é chamada pelo construtor do widget,no método initDialog(). O ficheiro em sí não deverá ser modificado pois contém o código gerado pelo editor de diálogos para criar o widget em ecrã. Se alguma vez tiver de modificar valores, deverá fazer isto através do construtor ou ter a certeza de que não irá alterar o diálogo durante o processo de desenvolvimento, pois o ficheiro Data será substituido de cada vez que o código for gerado para o seu widget. Os ficheiros header e C++ contêm secções, onde o editor de diálogos escreve; estes estão marcados por comentários. Após a geração dos ficheiros, pode modificar quaisquer valores e definições fora das secções; de outra forma as alterações perder-se-ão na próxima geração de código.

## 11.2.3. Localização

Para gerar o código do widget, o editor de diálogos necessita de saber a localização onde este irá. Os valores de defeito para o directório de destino é o subdirectório que contém o código fonte do projecto actual.

Após premir "OK", os seus valores por defeito serão gerados e um construtor de Widget vazio é aberto. Então encontra-se preparado para ir criar o seu próprio widget. Lembre-se que o editor de diálogos actualmente apenas suporta widgets estáticos sem gestão de geometria. Se estiver para utilizar gestão de geometria para os seus widgets, deverá acostumar-se com as classes que a Qt disponibiliza para isto, criando uma nova classe com o gerador de classes e escrevendo o resto do seu widget à mão. Para mais informações, veja O Manual de Programação do KDevelop.