Revista Do Linux
 
  
  
   

EDIÇÃO DO MÊS
  Para assinantes

  CD do Mês
  Capa
  Entrevista
  Estudo de Caso
  Desenvolvimento
  Programação
  Internacional
  Distro
assinantes
 

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


A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux