GTK + 3.0: ¿Cómo usar un Gtk.TreeStore con elementos de modelo personalizados?

Estoy tratando de desarrollar una aplicación GTK en Python y estoy realmente atascado con el uso correcto de ungtk.TreeStore. Mi problema principal: ya he analizado algunos JSON y tengo mi propia estructura de datos que es básicamente una lista de Python y dos tipos de objetos: uno representa una colección de elementos (no se pueden anidar colecciones) y uno para representar elementos ( que puede aparecer en la lista, así como en una colección).

Ya estoy familiarizado con el uso básico de unTreeStore y logró obtener elementos correctamente representados en la pantalla. No sé cómo lidiar con el hecho de que un treestore solo es capaz de almacenar tipos de objeto (en este punto no estoy seguro porque no sé mucho sobre el sistema de tipo de objeto). La documentación para C incluye los siguientes tipos básicos (excepto PixBuf) que se pueden insertar y se asignan automáticamente a los tipos de datos de Python:

Como ejemplo, gtk_tree_store_new (3, G_TYPE_INT, G_TYPE_STRING, GDK_TYPE_PIXBUF); creará un nuevo GtkTreeStore con tres columnas, de tipo int, cadena y GdkPixbuf respectivamente.

Además dice que puedes insertar cualquierGType. El enlace de la documentación apunta directamente a este párrafo:

Un valor numérico que representa el identificador único de un tipo registrado.

Mi investigación del tema termina aquí y Google encuentra en su mayoría tutoriales de GTK 2.x y nada sobre la inserción de otros tipos de datos, exceptostr yint etc.
Preguntas:

¿Es posible implementar un nuevo GType (o cualquier otra interfaz que haga posible insertar datos personalizados en un treestore) y cómo hacerlo?
Ya he intentado derivar deGObject pero no sirvió de nada.

¿Cómo puedo deshacerme de mantener dos estructuras de datos al mismo tiempo?
A saber, mi resultado de análisis y la información duplicada en un Treestore.

¿Cómo es posible tratar con contenido mixto?
En mi caso, tengo colecciones y artículos con información adicional diferente (que se reflejan en la vista de árbol como nodos con o sin hijos).

Si las preguntas anteriores se resuelven, también elimino el problema al manejar las selecciones: es difícil hacer coincidir un tipo simple comostr oint para que coincida con un elemento que he insertado antes. Dicho atributo tiene que ser una clave y aún así debería buscar en la lista con los resultados analizados, lo cual es inútil.

¡Gracias de antemano!

Información adicional no relacionada directamente con la pregunta:

Pensé que podría ser un reto factible implementar una costumbre.TreeModel hasta que lea esto en unatutorial para GTK 2:

Sin embargo, todo esto tiene un costo: usted espoco probable que escriba un modelo personalizado útil en menos de mil líneas, a menos que elimines todos los caracteres de nueva línea. Sin embargo, escribir un modelo personalizado no es tan difícil como podría parecer, y puede que valga la pena el esfuerzo, sobre todo porque resultará en un código mucho más inteligente si tiene muchos datos para realizar un seguimiento.

¿Esto sigue siendo válido?

Acabo de encontrarhttp://www.pygtk.org/articles/subclassing-gobject/sub-classing-gobject-in-python.htm ¿Puede esto ser útil? Como muchos recursos es para PyGTK 2.0. obsoleto.

Respuestas a la pregunta(1)

Su respuesta a la pregunta