Pessoal, nesse post vou mostrar um exemplo de um plasmoid em Python que implementa apenas o applet. Sua função é apenas mostrar um SVG. Recomendo a leitura do post anterior para melhor entendimento, além de um prévio conhecimento de Python e PyQt.
Plasmoid em Python: Applet
Python, Plasma, e o framework Graphics View
Pessoal, nesse post vou dar uma palavrinha sobre o framework Graphics View do Qt, para melhor entendimento dos posts seguintes sobre plasmoids em python. Segundo a documentação do Qt:
“O framework Graphics View provê uma interface para gerenciar e interagir com um grande número de itens gráficos 2D personalizados, e um view widget para visualização dos itens, com suporte para zoom e rotação.
O framework inclui uma arquitetura de propagação de eventos que permite interação precisa entre os itens da scene. Itens podem manipular eventos do teclado, eventos de pressionamento, movimento, liberação e clique duplo do mouse, e também podem rastrear o movimento do mouse.”
Esse framework é composto por 3 partes:
- Scene: serve como um contêiner para os itens
- Item: é o gráfico que é desenhado em cima da scene
- View: o widget que renderiza a scene
A classe base da scene no Qt é a QGraphicsScene; do item, a QGraphicsItem; da view, a QGraphicsView. Só podemos colocar diretamente na scene, itens que herdam de QGraphicsItem; não podemos colocar widgets como QLabel ou QTextEdit, por exemplo. Para resolver isso, existe a classe QGraphicsProxyWidget, que atua como uma camada de tradução entre o widget e a scene.
O KDE 4 trouxe no lugar do antigo desktop, o Plasma, que é uma extensão do framework Graphics View. No Plasma, como scene temos Plasma::Corona; como view, uma instância de Plasma::View, que fica associada a um Plasma::Containment, como o desktop, ou o folder view; como item, os plasmoids.
Um plasmoid é o conjunto de duas partes: um Applet, e uma DataEngine, que pode estar presente ou não. O Applet é a parte do plasmoid que vemos; a DataEngine é responsável por fornecer ao Applet os dados que o mesmo mostrará.
Apesar do KDE e do Qt serem escritos em C++, existem bindings em várias linguagens, entre elas Python, Ruby, C# e PHP, de forma que podemos, usando essas linguagens, acessar todas as funcionalidades das bibliotecas do Qt e do KDE. Para que possamos criar plasmoids em outras linguagens, o pessoal do KDE criou as ScriptEngines, que informam ao Plasma como rodar applets criados com essas linguagens.
As ScriptEngines para Python, Ruby e C# já estão maduras, e estão em desenvolvimento outras para JavaScript, Falcon, Java e outras linguagens.
Qt 4.5 será LGPL
Notícia meio atrasada, mas tá valendo: o Qt 4.5 será LGPL!
Desde que a Nokia comprou a Trolltech, no ano passado, eu já imaginava que isso ia acontecer. Agora, com a nova licença, creio que o Qt irá se tornar muito popular entre os desenvolvedores multiplataforma, graças à possibilidade de se escrever programas fechados com o Qt. Isso trará muitos benefícios, entre eles uma facilidade maior de um programa Qt feito somente para Mac, por exemplo, ser portado para Linux. É inegável a altíssima qualidade da biblioteca Qt, e tenho certeza que agora muitos desenvolvedores estão olhando para ela.
Agora torcer para que a Riverbank, empresa que desenvolve o PyQt, também relance o mesmo em LGPL.
Férias…
Graças a Deus, férias. Deu tudo certo. Concluí meu Ensino Médio, passei na UFS, estou trabalhando… Agora estou tirando um tempo para me aprofundar mais em Python e ir aprendendo C++. Agora sim, depois de muitas promessas, o blog vai ser atualizado constantemente. :)
2009 começou muito bem… esse ano promete!
Atualização
Caramba… mais de um mês sem postar! Infelizmente tô meio (muito) sem tempo pra me dedicar ao blog… Mas vou fazer o possível pra manter as coisas atualizadas :)
Agora tô correndo pra não reprovar no 3º ano, tenho que estudar pro vestibular, que coincidentemente (ou não) cai no dia do meu aniversário, e ainda tenho um bendito dum projeto de Delphi pra entregar um pedaço dia 25, e outro dia 09/12. Tá osso!
Agora aguardando pacientemente o KDE 4.2, que virá finalmente com os bindings do Plasma para o Python \o/, além de vários melhoramentos e etc. e tal. Finalmente, depois de 2 anos, parei quieto em uma distro só, o *maravilhoso*, *fantástico*, *incrível*, *e outros adjetivos de superioridade*, Arch Linux. A distro me oferece o Slackware com a salvação dos que não têm tempo, um gerenciador de pacotes, que é um dos melhores que já usei (se não o melhor), o pacman. No Arch tenho todos os pacotes atualizados sem ter que ficar instalando novas versões do sistema, além de que graças aos PKGBUILDs, posso facilmente manter atualizado meu KDE SVN, junto com o KDE 4.1.x, além de também com a mesma facilidade, criar pacotes de versões mais novas do que as dos repositórios (freqüentemente versões de desenvolvimento :).
Bem, chega de jabá pro Arch (só por enquanto ;), agora jabá pro Python: finalmente comprei o Learning Python, agora qualquer tempo livre que aparece, tô lendo ele, é muito bom; quando acabar, vou comprar o Programming Python e o Rapid GUI Programming with PyQt4. Python é massa demais; e com Qt fica muito melhor! Eu e um colega meu estamos desenvolvendo um player de áudio e vídeo, feito somente com PyQt4; tá no Alpha 1, em breve posto alguma coisa sobre ele, e, claro, o código-fonte.
Por hoje é só, tenho que ir dormir, amanhã começa a rotina escola-trabalho-escola de novo…
Saiu o Python 2.6!
Um tempão sem atualizar o blog, mas essa notícia não podia passar (e ainda assim passa atrasada): dia 1º saiu o Python 2.6! Esta versão é uma versão de transição entre o Python 2.x e o Python 3, que corrigirá muitos erros de design da linguagem. Muitas dessas correções tornam o código escrito com Python 2.x incompatível com o 3; por isso, o Python 2.6 e os seguintes (2.7, 2.8, etc.) suportam boa parte das funcionalidades do Python 3, não perdendo, porém, o suporte ao Python 2.5. O Python 2.6 emite avisos, caso o código escrito não seja compatível com o Python 3, ajudando na transição. Fora isso, ainda existe a ferramenta 2to3, que converte muito do código 2.5 (mas não tudo).
Existem várias novidades do Python 3 que foram portadas para o Python 2.6 (como uso de str.format ao invés de %); você pode vê-las aqui: What’s new in Python 2.6.
Você pode fazer o download do Python 2.6 aqui: http://python.org/download/releases/2.6/
Boa diversão! :D
Publicado em Python
Provedores cara-de-pau =/
É impressionante como os provedores de internet via rádio daqui são ignorantes. Tinha emprestado um CD do Ubuntu a um colega meu, que usa internet via rádio. No outro dia, ele me perguntou se o Ubuntu conectava à net via rádio. Eu respondi que sim, e ele me disse que tinha ligado pro provedor dele e o pessoal de lá disse que net via rádio não funciona no Linux…
Mesma coisa com meu provedor: estava tendo uns problemas com a conexão, e liguei pra lá para ter alguma informação. Pra quê que eu disse que uso Linux? Me mandaram ir pro Windows, clicar com o botão direito no ícone dos computadorezinhos na barra de tarefas e selecionar a opção “Reparar” ¬¬’… No fim, acabei indo lá no provedor, e o problema era a minha placa wifi que estava com defeito… Interessante que o servidor deles é Mandriva oO
Espero que um dia o suporte desse pessoal seja melhor (acho que vou esperar sentado). Que pelo menos, ao invés de dizer que não funciona, que dissessem: “Não damos suporte, tente pesquisar como funcionar” ou algo do tipo.
Publicado em Linux | Tags:ignorância, internet
Apresentação
Bem pessoal, sou Gabriel, moro em Sergipe e tenho 16 anos. Criei este blog para falar sobre jogos, software livre e tecnologia em geral,e sobre minhas aventuras no Linux e aprendendo a programar.
Atualmente estou concluindo meu Ensino Médio e vou começar o 2º módulo de Desenvolvimento de Sistemas no CEFET-SE. Planejo no próximo ano estar fazendo bacharelado em Ciência da Computação na UFS e concluir o curso de Desenvolvimento.
Minha linguagem de programação preferida é o Python, a qual estou aprendendo ainda, mas também sei o básico de Pascal, e estou fazendo um curso de Java.
Adoro jogar, mas o jogo tem que valer a pena mesmo. Meu estilo de jogo preferido é FPS; TPS só se o jogo for muito bom. Não curto muito jogos de corrida, futebol, etc. Meu negócio é matar >< =P.
Uso Linux no meu dia-a-dia, à exceção de quando jogo, coisa que não acontece muito, só quando aparece um jogo que eu goste (coisa que demora bastante :)). Atualmente estou usando o Fedora 9, por isso, vão aparecer vários posts sobre ele :)
Bem, por enquanto é só isso, até a próxima!
Publicado em Uncategorized | Tags:apresentação