Estrutura de uma Aplicação
|
||||||||
|
Instalando o Qt(Windows) ANTERIOR |
Página Inicial |
Primeira Aplicação PRÓXIMA |
#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:
|
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 |