Programando em Qt
Este artigo vai ensinar o básico da programação de interface gráfica Qt para C++, nada menos que a melhor plataforma de desenvolvimento GUI do mundo Linux.
Parte 2: Exemplo 1
Como primeiro exemplo criaremos o tradicional programa "Hello World!!!".
01 #include <qapplication.h>
02 #include <qlabel.h>
03
04 int main(int argc, char* argv)
05 {
06 QApplication program(argc,argv);
07
08 QLabel *label("Hello World!!!",null);
09
10 program.setMainWidget(label);
11
12 label.show();
13 return program.exec();
14 }
Comentando o código-fonte
As duas primeiras linhas de código fazem a inclusão dos arquivos de título necessários ao uso das bibliotecas Qt. Normalmente, para cada arquivo de título, o respectivo nome corresponde ao nome da classe contida nele, ou seja, no arquivo qlabel está a classe QLabel e apenas ela. Os nomes dos arquivos são sempre em letras minúsculas.
Na linha 06 um objeto da classe QApplication é criado. Obrigatoriamente todo programa que faz uso de Qt tem que inicializar este objeto e pode ter apenas um objeto da classe QApplication. Esta classe é responsável por controlar e gerenciar o fluxo da aplicação. Os parâmetros de linhas de comando são passados ao construtor do objeto QApplication, que se encarregará de processar os argumentos de linha de comando.
Na linha 08, criamos um objeto da classe QLabel. Essa classe fornece um simples rótulo de elemento GUI que pode ser usado como rótulo de outros elementos GUI. Os rótulos podem conter texto ou imagens. Passamos o texto que será exibido para o construtor da classe QLabel, mas poderíamos ter repassado com o método QLabel::setText(String string).
Na linha 09 dizemos ao objeto QApplication que o objeto label é o seu widget principal. O widget principal é o objeto que faz a aplicação sair quando ela é fechada. Se não ficar definido um widget principal, quando a janela da aplicação fosse encerrada mesmo com o botão de encerramento usual, o programa continuaria a ocupar a memória. Isto gasta recursos, então é melhor não esquecer.
Na linha 10, o método show() faz os objetos tornarem-se visíveis. Todo objeto pode ser exposto ou oculto e objetos que não são secundários de algum outro objeto exposto são ocultos por patrão. Se não explicitarmos o estado de visibilidade do objeto label, o programa irá rodar, mas não veremos nada.
Na linha 11 processaremos o evento principal. Faz-se isso fazendo chamada ao método QApplication::exec() do objeto QApplication, que é responsável por controlar o loop principal de todos os aplicativos criados em Qt.