Estrutura de uma Aplicação



Instalando o Qt(Windows)
ANTERIOR
Página Inicial Primeira Aplicação
PRÓXIMA


Criado em 23/09/2010 às 22:47

     



Dê uma olhada no código abaixo com atenção:

Código 1. Estrutura básica de uma aplicação Qt (main.cpp).
#include <QApplication>
					
int main(int argc, char * argv[])
{

	QApplication app(argc, argv);
	
	//algum código
	
	return app.exec();

}

Em todos os exemplos que vou dar, o arquivo principal da aplicação será o "main.cpp". Para a definição de classes utilizarei o header "nomedaclasse.h" e a implementação da classe "nomedaclasse.cpp". No header estarão contidos apenas as declarações públicas, privadas, protegidas e algumas outras que você verá mais pra frente, de protótipos de funções e variáveis. No arquivo .cpp da respectiva classe implementarei as funções declaradas no header, como a construtora por exemplo.
É bom você ir se familiarizando com o código mínimo acima. Todas as aplicações Qt tem no mínimo esse código (ta bom vai, e mais um pouquinho) inserido no seu arquivo "main.cpp", vamos analisá-lo linha à linha.

Nenhum segredo referente a linha "int main(int argc, char * argv[])" . Logo no início criamos uma variável do tipo QApplication , alocada na pilha. Essa variável está declarada no arquivo "qapplication.h" da biblioteca padrão do Qt. Então para que ela funcione corretamente devemos incluir seu header na diretiva "#include <QApplication>". Vale destacar que todas as classes do Qt tem seus arquivos header com o mesmo nome da classe, e por serem da biblioteca padrão do Qt são declaradas entre "< >". Depois disso, algum código é implementado (que será discutido nas próximas páginas) e finalmente temos a linha "return app.exec();". A função "exec()" é uma função pública da recém-criada variável app. Essa função entra num loop de eventos, ou seja, fica esperando até que o usuário interaja com a aplicação, seja clicando em botões, escrevendo, executando qualquer ação até que a função "exit()" seja chamada.

Toda aplicação Qt deve conter somente uma variável do tipo QApplication. Ela se responsabiliza pela criação das janelas e, como já vimos, pela execução do loop de eventos. Esse exemplo não faz nada, pq não tem nada!!
É como se você estivesse na sala com os amigos assistindo Tv e alguem dissesse "Vamo joga bola?!", todo mundo responde "Vamooo!"....e sem falarem nada, continuam assistindo TV.
Vale ressaltar que alguns parâmetros podem ser passados para aplicação no momento da sua execução, utilizando o argc e o argv.


O Conceito de Signals e Slots

O conceito de signals e slots é um dos grandes sucessos do Qt. Pense da seguinte forma: "E se eu pudesse conectar um botão com uma função? seria bom!". Com Signals e Slots você pode! Funciona mais ou menos da seguinte forma:

1: seOVolante, SIGNAL( forVirado() ), oCarro, SLOT( vaiVirar() )
        Se o volante for virado o carro vai virar

2: seOCorinthians, SIGNAL( ganhar() ), voce, SLOT( vaiAcordar() )
        Se o *** ganhar, você vai acordar

3: seAMesa, SIGNAL( forQuebrada(comUmPorrete) ), aMesa, SLOT( vaiParecerDestruida(comUmPorrete) )
        Se a mesa for quebrada com um porrete, ela vai parecer destruída por uma serra elétrica? não, por um porrete

4: seOBotão, SIGNAL( forClicado() ), aJanela, SLOT( vaiFechar() )
        Se o botão for clicado, a janela vai fechar... olhhaa


Acho que você entende bem o conceito pelo segundo exemplo! Isso será discutido mais a fundo nas próximas páginas.


Obtendo Ajuda Através da Documentação

Nós veremos mais pra frente que o Qt tem muitas, mas muitas mesmo, classes que derivam umas das outras, então as vezes você vê uma função sendo usada e se pergunta "Mas essa função não era daquela classe!?", isso ocorre porque o esquema de heranças de classes no Qt é gigante!!


Mas então você pergunta:
Tá, e como eu vou saber quem herda de quem?


Ai que você entra no seu menu iniciar e procura pelo Qt Assistant:



O Qt Assistant é extremamente útil e trate de se acustumar a consultá-lo. Mesmo quando eu vou explicar certa classe, dê uma fuçada no Qt Assistant primeiro. Lá você não encontra só informações sobre classes, mas encontra sobre TUDO, inclusive Enumerações, funções e macros. Tá em casa de bobeira? da uma lida no Qt Assistant, vai sair com a namorada? que nada.. dá uma lida no Qt Assistant.

Logo de cara já dá pra perceber que a classe QApplication vem da classe QCoreApplication.

Você deve ter percebido que eu uso um esquema de cores para auxiliar a explicação da seguinte forma:
Ferramentas do Qt
Classes da biblioteca padrão
Perguntas que eu me fiz quando estava (enquanto ainda estou) aprendendo
Momento Joselitagem mode On

Vamos então, para a nossa primeira aplicação!



     


Instalando o Qt(Windows)
ANTERIOR
Página Inicial Primeira Aplicação
PRÓXIMA


Comentários: Estrutura de uma Aplicação

Se você tiver alguma sugestão ou dúvida, por favor, preencha o formulário abaixo. O seu comentário só será adicionado após uma verifição do conteúdo.



Nome*:

Email*:

Mensagem*:


Nome: leidian
2011-12-04 12:05:08, disse:

por favor, onde eu devo escrever esses códigos? no proprio qt creator ou no devc++(o editor de códigos)? se for no creator, onde fica?

obg.
Nome: Danilo Domingos
2011-12-05 15:02:26, disse:

Olá leidian, esté é só um exemplo esquemático. Não precisa escrever em nenhum lugar. Nas próximas páginas você verá exemplos que devem ser escritos.

No exemplo da "Primeira Aplicação" pode ser em qualquer editor.

Mas o objetivo final é utilizar o QtCreator mesmo, então caso você prefira, pode utilizar o QtCreator desde o início.
Nome: jackson
2013-09-20 11:58:49, disse:

muito bom o tutorial fácil compreensão bacana me salvo.
vlw.......