Qt Designer
Conheça um pouco sobre este ambiente de programação amigável que poderá facilitar o desenvolvimento de seus projetos
Acostumados a ambientes integrados e geradores de código, muitos programadores oriundos da plataforma Microsoft têm dificuldade em se adaptar a compiladores separados de editores de texto. Muitos acabam deixando de conhecer o Linux por medo de ambientes de programação difíceis quando, na verdade, existem opções no Linux tão boas ou melhores que as existentes na plataforma Windows. Pensando nisso, a Trolltech AS, empresa norueguesa conhecida por ser a criadora da biblioteca Qt, criou o Qt Designer, ambiente de programação bastante amigável e completo.
O Qt Designer é distribuído gratuitamente com a biblioteca Qt. Antes da versão 3.0 da Qt, o Designer era pouco mais que um programa para desenhar interfaces, mas desde então ele evoluiu e agora pode ser utilizado para gerenciar projetos completos em C++.
Compilando
Antes de qualquer coisa, é necessário baixar a biblioteca Qt do site da Trolltech (vide referências) ou usar os pacotes fornecidos por sua distribuição (a Conectiva tem o pacote qt3-designer, por exemplo). Após baixar a Qt 3.0.4, descompacte o arquivo qt-x11-free-3.0.4.tar.gz assim:
$ cat qt-x11-free-3.0.4.tar.gz | gzip -dc | tar xf -
Em seguida, entre no diretório qt-x11-free-3.0.4 e configure e compile a Qt:
$ ./configure < opções >
$ make
Recomenda-se ler a documentação antes de configurar a Qt para conhecer as opções de configuração. A compilação irá colocar os executáveis em um subdiretório chamado bin, dentro do diretório da Qt, - é bom colocá-lo na variável PATH. Além disso, o subdiretório lib também deve estar disponível para o linker. Você pode fazer isso usando a variável de ambiente LD_LIBRARY_PATH ou adicionando o diretório ao arquivo /etc/ld.so.conf.
Iniciando com o Qt Designer
Após compilar a Qt e o Qt Designer, você pode iniciar o programa chamando o comando designer ou, caso sua distribuição forneça, clicando em algum menu ou ícone. O Qt Designer pode ser visto na figura 1.
Vamos criar um projeto C++ simples. Escolha `C++ Project' para criar um novo arquivo de projeto. No campo Project File digite a localização do arquivo de projeto a ser criado. Por exemplo, digite /tmp/rdl.pro e clique OK. Agora vamos criar a janela principal da aplicação. Clique em New e selecione Main Window na tela de opções de criação. Isto irá lançar o assistente de janela principal. Use as opções padrão por enquanto, apenas mudando os botões que você quer na barra de ferramentas. O resultado será uma janela com uma barra de menus, uma barra de tarefas e uma barra de status. Agora a interface deve ser trabalhada na área livre do centro da janela. Em nosso exemplo, vamos apenas inserir um botão. Clique em Tools->Buttons>PushButton para inserir um botão na janela. Não se preocupe em redimensioná-lo, pois vamos usar os layouts da Qt para organizar a janela. Clique sobre o botão e use o Property Editor para editar a propriedade `Text' do botão digitando algo como `Hello world'.
Finalmente, clique com o botão direito do mouse sobre a área livre da janela e selecione a opção Lay Out Vertically para que a Qt se encarregue de posicionar o botão.
Agora salve as alterações clicando no menu Salvar. Até agora só criamos uma janela, nada mais. Precisamos criar o código básico que irá iniciar nossa janela principal. Para isso, clique em New e escolha C++ Main File. Como só temos um form em nosso projeto, podemos simplesmente clicar OK para selecionar nossa janela princi pal como form principal da aplicação. Um arquivo C++ é incluído ao projeto contendo o código necessário para abrir o Form1.
#include
#include "form1.h"
int main( int argc, char ** argv )
{
QApplication a( argc, argv );
Form1 *w = new Form1;
w->show();
a.connect(&a,SIGNAL(lastWindowClosed()),&a,SLOT(quit()));
return a.exec();
}
Conectando slots
Uma aplicação que não interage com o usuário não é muito útil na maioria dos casos, então vamos fazer com que o botão mostre uma mensagem na tela quando clicado. Volte à nossa janela principal e vamos incluir um arquivo cabeçalho nele. Vá ao Object Explorer e clique duas vezes em Includes (in declaration) e digite qmessagebox.h no campo que aparecerá. Isso irá incluir o arquivo cabeçalho necessário para usar a classe QMessageBox, que usaremos para mostrar uma mensagem na tela.
Agora clique com o botão direito do mouse sobre a área livre da janela e selecione a opção Slots. Clique em New Slot, digite `mensagem()' como nome do slot e clique em OK. Com o slot criado, pressione a tecla F3 e clique no botão para conectar o slot. Novamente clique com o botão direito sobre a janela e selecione Source. Você encontrará o slot mensagem() e pronto para receber código. Faça o slot como o exemplo abaixo:
void Form1::mensagem()
{
QMessageBox::information( this, "Teste", "Isto é um teste" );
}
Salve as alterações para podermos compilar e testar o programa.
Compilando e testando o programa
Abra um console e vá para o diretório do projeto (/tmp, em nosso exemplo) e compile o programa:
$ qmake rdl.pro
$ make
Isto deverá gerar um arquivo executável chamado `rdl' que você pode executar para abrir o programa.
Threads: uma notinha final
A Qt pode ser compilada com ou sem suporte a threads. Caso ela tenha sido compilada com suporte a threads e você não tiver a Qt sem threads no sistema, é necessário fazer uma pequena alteração no projeto. Vá para Projects->Project Settings e clique na aba C++ e adicione a palavra-chave thread no campo Config. Isso é necessário para que o qmake saiba que o programa deve ser linkado com a biblioteca libqt-mt em vez da libqt.
Com este simples exemplo pode-se ter uma idéia de como é possível usar o Qt Designer para manter projetos em C++ em um ambiente amigável.
Para saber mais
Trolltech AS - www.trolltech.com
KDE - www.kde.org
Roberto Teixeira - roberto@kde.org