Tutoria Qt – Capitulo 03 – As ferramentas do Qt

Neste capitulo, serão apresentadas diversas ferramentas disponibilizadas junto o framework do Qt, que irão lhe ajudar no desevolvimento de suas próprias aplicações utilizando a biblioteca Qt.

Variáveis de ambiente

Para usar o Qt com sucesso, três variáveis de ambiente devem ser configuradas: QTDIR, PATH e QMAKESPEC. Para compilar o Qt, a variável QTDIR tem que ser configurada para o diretório que contém a distribuição Qt. No Mandrake 9, QTDIR é configurada para /usr/lib/qt3. Para ser capaz de invocar as ferramentas do Qt a partir da linha de comando a variável PATH precisa estar configurada. Simplesmente inclua ${QTDIR}/bin no final de seu PATH.

Para conseguir usar o qmake adequadamente a variável QMAKESPEC tem que ser configurada. QMAKESPEC aponta para um diretório que guarda arquivos que descrevem o ambiente alvo do  qmake. O Qt inclui um diretório chamado mkspecs, localizado em $QTDIR/mkspecs, contendo algumas especificações já prontas. Com certeza alguma dessas especificações atenderá as suas necessidades, por exemplo uma instalação do Linux na plataforma x86 usando um compilador gcc usa linux-g++, dessa forma QMAKESPEC deveria ser configurado para $QTDIR/mkspec/linux-g++.

Como configurar as variáveis de ambiente? No terminal digite export QTDIR=/usr/lib/qt3 e export PATH=$PATH:$QTDIR. Coloque essas expressões no seu arquivo .bashrc local (dentro de sua pasta home). Para verificar se essas variáveis estão configuradas, simplesmente digite echo $QTDIR no terminal.

Qt Designer

O Qt Designer é um ambiente de programação incluido dentro do Qt. O Qt 2.x Designer era usado para desenhar as janelas, sendo o código criado usando outrosm editores. O Qt 3.x Designer foi estendido para manipular projetos C++ e edição de código além de outras funcionalidades. No decorrer desse tutorial usaremos o Qt Designer extensivamente por simplificar enormemente o processo de desenvolvimento.

qmake

Como uma aplicação Qt tem dependências para as bibliotecas do Qt, ela suporte as bibliotecas e algumas vezes também componentes de terceiros, mas ao mesm otempo tenta ser completamente portável a criação de arquivos pode facilmente se tornar bastante complexos. Não apenas o código C++ precisa ser compilado, mas o moc introduz um estágio adicional de pré-compilação e, como veremos, a interface com o usuário pode ser compilada a partir de descrições XML de classes C++. Para resolver esse problema, o qmake é usado.

Nos casos mais simples, simplesmente digite “qmake -project” para analisar todo o código e emitir um arquivo de descrição de projeto (*.pro). Se o qmake é executado sem nenhum parâmetro um Makefile adequado a plataforma alvo é gerado. Para compilar o projeto, simplesmente execute a ferramenta make.

Para criar um arquivo Makefile adequado, o qmake depende da variável QMAKESPEC e da descrição para a qual ela aponta. Essa descrição guarda todas as informações referentes ao alvo pretendido.

Se você alterar o código, sem adicionar nenhum arquivo de projeto novo de dependências externas (incluindo arquivos de outras bibliotecas) não existe necessidade de re-executar o qmale. Simplesmente execute o comando make para compilar o código como seria feito em outros projetos. Em outros caso pode ser necessário re-criar a descrição do projeto e o Makefile.

A maior vantagem, além de não ter que manipular Makefile complexos, é que o arquivo de descrição de projeto é portável. Desde que você tenha uma especificação do qmake para sua plataforma alvo, você pode criar uma Makefile e então todo o projeto, com a mesma descrição de projeto.

Exemplo 3-1

Opções mais avançadas estão disponíveis. É recomendado que os leitores interessados estudem o capitulo sobre os Conceitos Avançados da documentação on-line do qmake.

Algumas distribuições Linux incluem apenas a versão multi-threaded do Qt, chamada lib-qt.so, e não a libqt.so. Isso significa que o ld reclamará (quando for executado o gcc, g++ ou outra ferramenta que invoque o ld) que não pode encontrar -lqt. Existem três formas para resolver isso, que são listadas abaixo. A primeira opção é a recomendada.

  • Mude o arquivo qmake.conf  apontado pelo  QMAKESPEC adicionando a palavra thread na linha CONFIG +=…
  • Mude o arquivo .pro do projeto para que seja criado adicionando a palavra thread na linha CONFIG+=…
  • Compile o Qt sem suporte a multi-threading para gerar o arquivo libqt.so.
  • Coloque um link chamado libqt.so apontando para libqt-mt.so no diretório lib.

uic

A interface de usuário para compilar arquivo .ui de tradução gerados pelo Designer em classes C++. Essa ferramenta é configurada automaticamente pelo qmake.

moc

O compilador de meta-objetos que cria os meta-objetos que descrevem as classes que contém sinais e slots. Essa ferramenta é configurada automaticamente pelo qmake.

linguist

Essa ferramenta usa lrelease e lupdate. Elas são  usadas para internacionalizae (i18n) as aplicações Qt. Isso será coberto em capitulos posteriores desse tutorial.