Make your own free website on Tripod.com

Criação das classes no KDevelop

Ao fechar o Designer e voltar para o KDevelop, nenhuma classe foi adicionada ao projeto, mas apenas dois arquivos com extenão .ui (user interface). No momento da compilação, os arquivos gerados no Designer serão convertidos em fontes C++ e é suficiente saber que serão criados os arquivos qlistaformapagto.h e qformapagto.h onde estarão declaradas as classes QListaFormaPagto e QFormaPagto. Na modelagem, foram concebidas as classes KListaFormaPagto e KFormaPagto e, para que elas representem os formulários criados no Designer, será usado o conceito de herança: as classes serão filhas de QListaFormaPagto e QFormaPagto. Para que a classe funcione de acordo com a modelagem, devem ser reimplementados os métodos correespondentes aos slots que foram definidos no Designer.

A classe KFormaPagto foi gerada pelo Umbrello, mas o Umbrello não sabe que ela deve ser filha de QFormaPagto. Assim, deve-se alterar sua declaração para que ela se torne filha da classe gerada pelo Designer. Depois é só partir para a codificação de seus métodos. A classe KFormaPagto foi deixada para ser criada no KDevelop para ilustrar o seu funcionamento.

Para criar uma classe no KDevelop, deve-se selecionar o menu Projeto->New Class. Uma caixa de diálogo como a da Figura 18 irá se abrir. Esta caixa de diálogo contém duas abas para que sejam informados os dados da classe. No campo Nome deve-se colocar o nome da classe: KListaFormaPagto. Ao colocar o nome da classe, os campos Header e Implementation são preenchidos com o nome da classe todo em minúsculo com as respectivas extensões .h e .cpp. São esses os arquivos que serão manipulados depois da classe criada.

Figura 18. KDevelop - criando uma nova classe

À direita da janela, exite um grupo de opções da classe. Das opções disponíveis, será marcado Generate QWidget child class. Ao marcar esta opção, a opção Class is Q_OBJECT também é selecionada. Isto é necessário para que a classe consiga trabalhar com o mecanismo signal and slot do Qt. O campo Documentation também é interessante ser preenchido. Por enquanto pode-se colocar exatamente a mesma documentação colocada na modelagem. Mais tarde, será visto como formatar esse texto para gerar uma documentação da API do sistema em diversos formatos (HTML, PDF, entre outros).

Preenchidos todos os campos, ao clicar em Ok, o KDevelop vai criar dois arquivos implementando a classe KListaFormaPagto. A classe é criada com dois métodos: o construtor KListaFormaPagto e o destrutor ˜KListaFormapagto. Para ver que a classe foi incorporada à estrutura do projeto, é só abrir a janela de classes do KDevelop que ela vai aparecer dentro do grupo Classes.

Criada a classe, devem ser acrescentados os seus métodos conforme a modelagem da classe. Para isso, deve-se clicar sobre o nome da classe com o botão direito e no menu que aparece, selecionar a opção Add Method. Uma caixa de diálogo como a mostrada pela Figura 19 se abre para que sejam digitados os dados do método.

Figura 19. KDevelop - criação de métodos

O primeiro método que será acrescentado é o método atualiza(). Este método não vai retornar nenhum valor e, portanto o campo Return Type será void. O campo Declarator deve ser preenchido com o nome do método seguido dos parâmetros (se existir algum). Para a classe modelada, o campo deve ser preenchido com atualizar(). No campo Acesso, deve ser escolhida a opção Public Slots e no campo Storage, escolhe-se a opção Virtual. O acesso público se justifica porque ao clicar no botão Atualizar, o usuário na verdade está chamando este método. Da mesma forma, são criados os slots restantes: inclui, exclui e altera.

Criadas as classes, pode-se então partir para a codificação dos métodos, ou seja, trabalhar efetivamente com o C++. As classes de interface precisam das classes que acessam o banco de dados para funcionar e, portanto, a implementação do sistema vai ser iniciada por elas.