Qt/Primeiro programa

< Qt

Este é o tradicional programa "Hello, World!".


#include <qapplication.h>
#include <qlabel.h>

int main( int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel label("Hello, world!", 0);
    app.setMainWidget(&label);
    label.show();
    return app.exec();
}

Compilação editar

Em algum momento vou ter que explicar como funciona o moc[1], mas por enquanto estou fugindo disso.

Explicação editar

Como o programa consta de apenas um widget, que é uma janela contendo a string "Hello, world", precisamos incluir a biblioteca que tem este widget (qlabel). Todos programas que usam Qt tem que ter uma variável do tipo QApplication, portanto inclui-se também esta biblioteca. Isto explica as duas linhas:


#include <qapplication.h>
#include <qlabel.h>

O programa principal (main) deve começar com a criação de uma QApplication, e terminar com esta aplicação em loop. Este loop é que faz o tratamento dos eventos inerentes a um programa GUI, por exemplo, a mudança do tamanho da janela ou o fechamento.

int main( int argc, char *argv[])
{
    QApplication app(argc, argv);
    // ...
    return app.exec();
}


O fragmento de programa acima, com a inclusão da library qapplication, não consegue rodar, porque nenhum widget foi incluído. É preciso criar um widget, dizer que ele é o widget principal da aplicação, e mostrá-lo. Isto é feito, respectivamente, nas três linhas abaixo:

    QLabel label("Hello, world!", 0);
    app.setMainWidget(&label);
    label.show();

Referências

  1. Meta Object Compiler, no site da Trolltech