Primeiros Passos no Qt

Após algum tempo sem postar no KDE-RS, estou de volta com um bom assunto para comentar. Partirei do princípio de que o pessoal já conhece o Qt e sabe o que ele é capaz de fazer. Andei trabalhando um bocado com o mesmo durante o mês de setembro, num trabalho de faculdade, mais especificamente. A professora havia liberado o uso de qualquer tecnologia, achei que seria interessante trabalhar com este framework. Já tenho experiência com C++ faz uns 7 meses, aproximadamente, e posso dizer que aprendi bastante durante este período. Ainda brigo um pouquinho com os ponteiros e os segfaults, mas, acredito que seja tudo normal. :) Já estava lendo e estudando há um tempo sobre o Qt, e, pelo que vi, achei muito interessante, tanto é que vivo divulgando ele pela faculdade. Eu comecei efetivamente a desenvolver nesse framework neste trabalho, tinha alguma noção das classes e módulos, porém muito pequena antes disso. Manipulei muito mais com o QtGui do que com o resto dos módulos disponíveis, pois só estava utilizando como toolkit para interface gráfica. Primeiro, comecei com um diálogo bem simples, algo do tipo “Hello World!”:

#include<QtGui/QApplication>
#include<QtGui/QLabel>
int main(int argc, char* argv[])
{
QApplication app(argc,argv);
QLabel label(“Hello World!”,window);
label.show()
return app.exec();
}
Não imaginei que seria tão fácil assim. Tenho poucas experiências em interfaces gráficas, um pouquinho de GTK+, quase nada, e o Swing, do Java, do qual prefiro manter distância, da linguagem e do toolkit gráfico. :) Claro, isso reproduz uma aplicação em Qt extremamente simples, nem layouts e botões tem na configuração desta janela, porém, já é um bom começo. Acho que no dia que criei este pequeníssimo programa, eu demorei mais fazendo o arquivo de configuração do CMake do que o próprio código, devido a incômodos com as headers do Qt, pois no exemplo mostrava sempre #include<QtGui>, e na prática nunca funcionava, até que me dei conta de que as aplicações nos exemplos eram compiladas pelo qmake. Baita mancada minha, mas, ainda bem, não me custou um dia inteiro, acho que só uma tarde, menos mal. :) Agora, vamos dar algumas incrementadas neste programa em Qt, para deixar com um visual, digamos, mais interessante:
#include<QtGui/QApplication>
#include<QtGui/QLabel>
#include<QtGui/QPushButton>
#include<QtGui/QVBoxLayout>
int main(int argc, char* argv[])
{
QApplication app(argc,argv);
QWidget *window = new QWidget();
QLabel *textone = new QLabel(“Just another text.”,window);
QLabel *texttwo = new QLabel(“Hello World!”, window);
QPushButton *ok = new QPushButton(“OK”,window);
QVBoxLayout *vbox = new QVBoxLayout();
vbox->addWidget(textone);
vbox->addWidget(texttwo);
vbox->addWidget(ok);
window->setLayout(vbox);
window->resize(320,240);
window->show();
return app.exec();
}
Aqui introduzo dois conceitos bastante importantes ao trabalhar com esta toolkit gráfica. Todos os widgets podem respeitar um determinado layout, bastando apenas eles estarem ligados a este; o mesmo serve para o widget principal, seja ele um QWidget, QMainWindow ou um QDialog. Resumindo, um widget é o componente básico da janela, e um layout é um conjunto deles. Podemos também ter vários layouts, variando de horizontal a vertical, dependendo do que se deseja desenhar de interface gráfica. O normal é sempre ter de um a três na vertical, e vários na horizontal. Pelo menos é assim que sempre faço. Acredito que tenha conseguido pelo menos introduzir o pessoal que anda interessando em programar em Qt/C++, e incentivá-los a desenvolver nesta ótima tecnologia, que possui uma boa documentação e uma estrutura extremamente organizada, além de ser livre (LGPL) e multiplataforma, o que torna-o uma excelente opção, de desenvolvedores independentes a empresas. Pretendo falar também um pouco de sinais e slots, muito importantes dentro do Qt, especialmente para tratamento de eventos, mas, isso é assunto para outra hora. Ficasse interessado? Seguem os links de documentação do Qt e de exemplos, muito úteis para quem está começando a programar neste ótimo framework:
Ah, e também não posso me esquecer do Qt Assistant, que me ajuda nas (diversas) horas em que estou off-line. Ele está incluso no Qt SDK. Para baixar o Qt, conforme teu gosto, SO, ou licença, basta entrar no seguinte site:

Digikam, Choqok, Blogilo e Akegrator

Bom, eu admito meu vício na grande teia: tenho perfil em vários lugares e tento mantê-los atualizado na medida do possível (acredito que se bem usados, podem ser muito úteis – to aqui hoje por causa do twitter). Logo, adoro ferramentas que facilitem a vida nesse sentido. E no KDE temos ferramentas muito boas para isso (win!):

Digikam
O Digikam é um aplicativo de gerenciamento avançado de fotos digitais para Linux, Windows e Mac OSX. Com ele você consegue organizar as suas fotos através de albuns, tags e avaliação. Depois de organizá-las é muito fácil de atualizar o seus álbuns na web:  você pode instalar plugins para fazer o upload  de suas fotos para o Flickr,  Picasa e Facebook. E se precisar, também é possível realizar algumas edições básicas: como girar a imagem e redimensionar.

Digikam

Plugins para exportar fotos para diversas redes sociais

Choqok
O Choqok é um cliente para Twitter/Identi.ca. O que eu acho mais bacana do Choqok é que as suas contas no Twitter e Identi.ca são separadas em abas, e nessas abas você visualizar facilmente os replies, favoritos e mensagens (de acordo com o que você configurar). No Choqok, você consegue ver um preview de imagens e vídeos postados pelos seus amigos.

Contas visualizadas em abas

Blogilo
Blogilo é um cliente para blogs, com foco em simplicidade e usabilidade. Com ele você pode gerenciar as suas contas em blogs como Blogspot e Worpress. Tem suporte para edição em HTML/CSS e para upload de mídias (imagens e vídeos). E ainda é possível agendar a publicação de posts.

Edite o HTML/CSS do seu blog

E enquanto o Digikam faz upload das suas fotos para o Flickr, dá para ficar lendo os seus feeds:

Akegrator
o Akegrator é o leitor de feeds do KDE. Ele permite que você “siga” as atualizações de sites de notícias, blogs e outros sem a necessidade de usar um navegador web. Akregator é projetado para ser fácil de usar e ser poderoso o suficiente para ler centenas de fontes de notícias. E tem integração com o Konqueror para adicionar feeds.

E não fugindo da internet…eu estou trabalhando em um plugin para o Quanta – a nossa IDE para desenvolvimento Web do KDE.  Nós já temos a sua versão 4, que está está sendo finalizada pelo Millian e logo logo estará disponível. O Quanta provavelmente será o assunto do meu próximo post, assim que o tempo permitir.

%d blogueiros gostam disto: