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.

[ Hits: 70.217 ]

Por: Perfil removido em 04/06/2005


Exemplo 2



Neste exemplo iremos substituir o rótulo por um simples botão que estará ligado a um determinado evento, que neste caso terá a função de encerrar o aplicativo. Um botão é um elemento comum de interface com usuário em toda plataforma: você clica e algum evento acontece. Em Qt, os botões são representados pela classe QPushButton, que é uma subclasse de QButton, que por sua vez é uma subclasse de QWidget, a classe básica de todos os elementos GUI de Qt.

01   #include <qapplication.h>
02   #include <qpushbutton.h>
03
04   int main(int argc,char **argv)
05   {
06        QApplication program(argc,argv);
07 
08        QPushButton quit("Click Here!!!",0);
09        quit.resize(100,30);
10 
11        QObject::connect(&quit,SIGNAL(clicked()),&program,SLOT(&quit));
12
13        program.setMainWidget(&quit);
14        quit.show();
15         return program.exec();
16     }

Observando o código você verá que não muita mudança em relação ao exemplo anterior, a não ser o seguinte trecho de código:

QObject::connect(&quit,SIGNAL(clicked()),&program,SLOT(&quit));

Na verdade, este exemplo foi criado apenas para lhe ensinar sobre SINAIS e SLOTS, que é necessário para entender o que acontece nesse método. Sinais e Slots são usados para a comunicação entre objetos Qt. Sempre que o botão é clicado ele envia um sinal, neste caso um sinal clicked(). Este sinal significa mais ou menos assim, "Alguém me clicou. Façam alguma coisa.", então outros objetos que pertencem ao programa podem se conectar com o widget para serem avisadas toda vez que o botão for clicado. Isso é feito através de um slot que tem a função de responder a um sinal em particular. Sinais e Slots são conectados através do método QObject::connect(), em que recebe como parâmetros de entrada o objeto que emite o sinal "&quit", o sinal que é emitido "SIGNAL(clicked())", o objeto que recebe o sinal "&program" e o slot onde este sinal é recebido "SLOT(&quit)". Um único sinal pode estar ligado a vários slots, bem como a recíproca é verdadeira de que um único slot pode estar escutando vários sinais.
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Exemplo 1
   3. Exemplo 2
   4. Compilando
   5. Documentação
Outros artigos deste autor

Experiência de migração para software livre

Um tour pelo skin do Viva o Linux para aMSN

Ingressando estações de trabalho Ubuntu no AD com Closed In Directory

"TORIFICANDO" todo um sistema GNU/Linux utilizando a rede TOR

Migrando para Linux sem medo

Leitura recomendada

Apreendendo a utilizar o GNU Debugger (parte 2)

Criação e uso de um interpretador de script BrainFuck em C++

Aprendendo a utilizar o GNU Debugger (parte 1)

Detectando assalto na multidão com visão computacional

Criando um sistema operacional com ASM e C++

  
Comentários
[1] Comentário enviado por luiscarlos em 04/06/2005 - 17:47h

kra, adorei seu artigo, apesar de muito simples, me mostrou como começar com o Qt, tinha tentando a algum mexer nele mas sem sucesso, gostaria se possivel, que fizesse uma segunda arte deste artigo mostrando alguma coisa mais avançada, parabéns pelo artigo, muito bem explicado!!

[2] Comentário enviado por daaugusto em 04/06/2005 - 17:55h

> "nada menos que a melhor plataforma de desenvolvimento GUI do mundo Linux."

Isso só demonstra fanatismo. Eu prefiro a FLTK ao Qt (ou qualquer outro toolkit), por questões de elegância, licença e desempenho em tempo e espaço, e aí?!? Outros preferem o wxWidgets, FOX, Lazarus, Kylix, OpenStep e afins.

É difícil --senão impossível-- traçar um critério objetivo para dizer qual biblioteca/framework é melhor. E, ainda assim, projetos diferentes podem requerer toolkits diferentes, mais apropriados.

[3] Comentário enviado por mpinho em 04/06/2005 - 22:14h

Só uma correção: a Qt para windows já faz um tempo também é GPL para quem desenvolve programas GPL com ela. Só é necessário pagar se o programa for proprietário ou não GPL

[4] Comentário enviado por FelipeAbella em 08/12/2005 - 18:09h

Parabens pelo artigo!

Muito util!

[5] Comentário enviado por aprendiz_ce em 02/06/2006 - 11:08h

Parabens pelo artigo. Gostei muito!

Para utiliza-lo para valer, existe algum tipo de ambiente de desenvolvimento ou tem que ser com um editor de textos qualquer?

Obrigado.

[6] Comentário enviado por DanielGimenes em 09/06/2008 - 16:15h

"Favoritado" huehuehu


Muito bom, obrigado!

Bem completo. Só fiquei um pouco com dúvido em Slots, mas agora eu me viro :P

E reforço o pedido do luis0101.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts