GTK + 3.0: Como usar um Gtk.TreeStore com itens de modelo personalizado?

Eu estou tentando desenvolver um aplicativo GTK em Python e estou realmente preso com o uso correto de umgtk.TreeStore. Meu principal problema: Eu já analisei alguns JSON e tenho minha própria estrutura de dados que é basicamente uma lista Python e dois tipos de objetos: um representa uma coleção de itens (coleções não podem ser aninhadas) e uma para representar itens ( que podem aparecer na lista, bem como em uma coleção).

Eu já estou familiarizado com o uso básico de umTreeStore e conseguiu obter itens corretamente renderizados na tela. Eu não sei como lidar com o fato de que um treestore só é capaz de armazenar tipos de objetos (neste momento eu não tenho certeza porque eu não sei muito sobre o sistema de tipos de objetos). A documentação para C lista os seguintes (exceto PixBuf) tipos básicos que podem ser inseridos e mapeados automaticamente para os tipos de dados do Python:

Por exemplo, gtk_tree_store_new (3, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_PIXBUF); irá criar um novo GtkTreeStore com três colunas, do tipo int, string e GdkPixbuf respectivamente.

Além disso, diz que você pode inserir qualquerGType. O link da documentação aponta diretamente para este parágrafo:

Um valor numérico que representa o identificador exclusivo de um tipo registrado.

Minha pesquisa sobre o assunto termina aqui e o Google encontra principalmente tutoriais GTK 2.xe nada sobre a inserção de outros tipos de dados, excetostr eint etc.
Questões:

É possível implementar um novo GType (ou qualquer outra interface que torne possível inserir dados personalizados em um treestore) e como fazê-lo?
Eu já tentei derivar deGObject mas isso não ajudou.

Como posso me livrar de manter duas estruturas de dados ao mesmo tempo?
Ou seja, meu resultado de análise e as informações duplicadas em um Treestore.

Como é possível lidar com conteúdo misto?
No meu caso, tenho coleções e itens com informações adicionais diferentes (que são espelhadas no treeview como nós com ou sem filhos).

Se as perguntas acima forem resolvidas, também me livrei do problema ao lidar com as seleções: é difícil combinar um tipo simples comostr ouint para corresponder a um item que eu inseri antes. Tal atributo tem que ser uma chave e você ainda deveria procurar na lista com resultados analisados ​​que são ineficazes.

Agradeço antecipadamente!

Informações adicionais não diretamente relacionadas à pergunta:

Eu pensei que poderia ser um desafio viável para implementar um costumeTreeModel até que eu leia isso em umtutorial para o GTK 2:

No entanto, tudo isso tem um custo: você éÉ improvável que você escreva um modelo personalizado útil em menos de mil linhas, a menos que você tire todos os caracteres da nova linha. Escrever um modelo personalizado não é tão difícil quanto pode parecer, e pode valer a pena o esforço, até porque ele resultará em um código muito mais seguro se você tiver muitos dados para acompanhar.

Isso ainda é válido?

Eu acabei de encontrarhttp://www.pygtk.org/articles/subclassing-gobject/sub-classing-gobject-in-python.htm Isso pode ser útil? Como muitos recursos é para o PyGTK 2.0. descontinuada.

questionAnswers(1)

yourAnswerToTheQuestion