Estes dias quando estava trabalhando em uma nova interface gráfica para um programa em python, reparei que toda vez que preciso de adicionar um gtk.TreeView como uma lista (pense em uma planilha), sempre acabo re-escrevendo o mesmo código que utilizei em um outro projeto… e pensei:

"Por que não criar meu próprio kit/widget e parar de repetir código?"

Como não tinha muito que fazer neste último sábado, acabei criando o GenericList, minha abstração de um grk.TreeView.

A very generic gtk.TreeView base class

Agora, toda vez que eu precisar adicionar uma lista em um de meus programas, tudo que tenho de fazer é instanciar esta classe, passando somente a disposição das columnas que eu preciso. Ou, criar uma nova classe que “herda” desta classe genérica:

Subclassing the generic list

O código para a classe acima é só isso aí mesmo… Dentro do meu código eu instancio ela e posso adicionar, remover, etc registros simplesmente usando os métodos genéricos add(), remove(), etc, etc, como exibido abaixo:

from billlistview import BillListView as ListView self.list = ListView() pixbuf = gtk.gdk.pixbuf_new_from_file(‘coin.jpg’) list = [[pixbuf, ‘Verizon’, ‘$ 49,00’, ‘04/27/2007’], [pixbuf, ‘T-Mobile’, ‘$ 55,99’, ‘04/15/2007’], [pixbuf, ‘Cable’, ‘$ 111,99’, ‘04/15/2007’]] self.list.addList(list)

A little test application

E é claro que não podia faltar um screenshot do exemplo acima em execução.

A sample demo

Ainda pretendo adicionar mais alguns métodos antes de usá-la no BillReminder, por exemplo.


Comments

comments powered by Disqus