Uso o
Linux há alguns anos, sempre acompanho os seus melhoramentos e
que melhoramentos.
Uso atualmente o MDK 9.1 com KDE 3.1, pois pareceu-me mais estável.
Com este, podemos instalar vários ambientes de programação. Em evolução
constante, podemos encontrar o
Qt Designer. Este é um ótimo
gerenciador de projetos em C++.
Problemas
Utilizo a versão 3.1.1, que veio ótima, sem alguns bugs da versão
anterior. Ótima até iniciarmos a compilação com o
qmake. O
Makefile produzido parece não reconhecer os diretórios dos
binários nem das bibliotecas.
Programando
Vamos criar um projeto C++ bem simples:
- Inicie o Qt Designer.
- Selecione "C++ Project" para iniciar um novo projeto. Entre com o nome
do projeto em "Project File". Por exemplo, /Projects/qtExample.pro.
- Na aba C++, entre com "thread" em Config e clique em Ok.
Pronto! Criamos nosso projeto.
Vá em
File > New ou simplesmente clique em Ctrl + N. Será aberta
o diálogo
New File. Neste, selecione
Dialog. Redimensione-o
e insira um novo botão "pushButton1". Modifique sua propriedade Text
para "Ok".
Clique em
Conecct Signal/Slots ou simplesmente pressione F3. Observe
que o ponteiro do mouse modificou-se. Clique no botão Ok do formulário.
Veja que formou uma áurea em torno do botão. Clique agora no formulário.
Surgirá o diálogo
View and Edit Connections.
![](/screenshots/comunidade/thumbs/qtdesigner01.jpg)
Qt Designer em ação.
Na coluna Signal clique sobre No Signal e selecione
Clicked (). Em Receiver escolha o Form1. Vá agora até Slot. Clique sobre No Slot e selecione Close().
Seu programa já está funcional. Clique em Preview >
Preview Form. Maravilha, não?
Salve seu formulário de diálogo. Por exemplo, /Projects/frmqt.ui.
![](//static.vivaolinux.com.br/imagens/qtdesigner02.jpg)
Main file.
O próximo passo é criarmos o código básico que irá iniciar nosso formulário.
Clique em New > File e escolha C++ Main-File (main.cpp).
Clique em Ok e veja que surgirá o diálogo Configure Main-File. Observe que
em Main-Form só existe o formulário que criamos anteriormente. Clique em Ok.
![](//static.vivaolinux.com.br/imagens/qtdesigner03.jpg)
Código do arquivo main.cpp.
Seu projeto já está pronto. Sai do Qt Designer. Observe no diretório do seu
projeto que foram criados três arquivos:
~/Projects/frmqt.ui /formulário do nosso projeto
~/Projects/main.cpp /código de inicialização do formulário
~/Projects/qtExample.pro /nosso projeto
Compilando
Nossos problemas surgem exatamente quando iniciamos a compilação de nosso
projeto. Entre num console e tente compilá-lo:
# qmake qtExample.pro
Tentei tanto como usurário quanto como root, não consigo iniciar o
qmake, já que este não se encontra em /bin ou /usr/bin e sim
/usr/lib/qt3/bin.
Então vamos até o qmake:
# /usr/lib/qt3/bin/qmake qtExample.pro
Observe que estamos dentro do diretório do nosso projeto. Podemos fazer
o comando acima como usuário normal. Será gerado o arquivo:
~/Projects/Makefile
Até aqui tudo bem.
# make
Veja o que acontece abaixo:
/bin/uic frmqt.ui -o .ui/frmqt.h
make: /bin/uic: Command not found
make: *** [.ui/frmqt.h] Error 127
Observe que o executável
uic não é encontrado, pois este
simplesmente se localiza em /usr/lib/qt3/bin. O que acontece é que o
make ao gerar o arquivo "Makefile" não conseguiu encontrar a
localização dos executáveis nem das bibliotecas.
O arquivo que inicializa o Qt Designer, designer, está ok. Veja abaixo.
Mas, parece não haver exportação dos respectivos paths.
#!/bin/sh
# Support script to properly set environments for Designer to run
export QTDIR=/usr/lib/qt3/
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH=$QTDIR/bin:$PATH
export MOC=/usr/lib/qt3/bin/moc
export UIC=/usr/lib/qt3/bin/uic
exec /usr/lib/qt3/bin/designer-real "$@"
Abra o arquivo "Makefile" e no início do arquivo escreva:
QTDIR = /usr/lib/qt3/
Teremos o problema de localização dos executáveis e das bibliotecas.
Mas, ainda teremos alguns erros, pois as bibliotecas lqt-mt
deveriam estar em /usr/X11R6 como as lXext, lX11, lm, etc. Veja a linha
22 do Makefile:
LIBS = $(SUBLIBS) -L$(QTDIR)/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm -lpthread
Veja que as bibliotecas estão apontadas para /usr/X11R6/lib, então, copiei
todas as bibliotecas contidas em /usr/lib/qt3/lib, como root, para aquela
localização.
# cp /usr/lib/qt3/lib/*.* /usr/X11R6/lib
Agora utilize o comando make. Rode-o como usuário comum:
# make
Pronto! Já tem seu executável. Rode-o:
# ./rdl
OBS: algumas vezes, apesar de termos alterado na aba C++ Config como
"thread", essas mudanças não são salvas em rdl.pro. Antes de
compilar, de uma observada no código deste arquivo e procure a linha:
CONFIG += thread
Se não estiver assim, altere-a e salve-a.
Comentários ou sugestões serão bem vindos: #