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.