¿Cómo hacer que GtkListStore almacene el atributo de objeto en una fila?

Estoy tratando de mantener en ListStore los objetos que no son de texto usando el fragmento que encontré. Estos son los objetos:

class Series(gobject.GObject, object): def __init__(self, title): super(Series, self).__init__() self.title = title gobject.type_register(Series) class SeriesListStore(gtk.ListStore): def __init__(self): super(SeriesListStore, self).__init__(Series) self._col_types = [Series] def get_n_columns(self): return len(self._col_types) def get_column_type(self, index): return self._col_types[index] def get_value(self, iter, column): obj = gtk.ListStore.get_value(self, iter, 0) return obj 

Y ahora estoy tratando de hacer que TreeView lo muestre:

  ... liststore = SeriesListStore() liststore.clear() for title in full_conf['featuring']: series = Series(title) liststore.append([series]) def get_series_title(column, cell, model, iter): cell.set_property('text', liststore.get_value(iter, column).title) return selected = builder.get_object("trvMain") selected.set_model(liststore) col = gtk.TreeViewColumn(_("Series title")) cell = gtk.CellRendererText() col.set_cell_data_func(cell, get_series_title) col.pack_start(cell) col.add_attribute(cell, "text", 0) selected.append_column(col) ... 

Pero falla con errores:

GtkWarning: gtk_tree_view_column_cell_layout_set_cell_data_func: asertion info != NULL' failed
col.set_cell_data_func(cell, get_series_title) Warning: unable to set property
error info != NULL' failed
col.set_cell_data_func(cell, get_series_title) Warning: unable to set property
info != NULL' failed
col.set_cell_data_func(cell, get_series_title) Warning: unable to set property
texto de info != NULL' failed
col.set_cell_data_func(cell, get_series_title) Warning: unable to set property
‘de tipo gchararray' from value of type datos + TrayIcon + Series ‘
window.show_all () Advertencia: no se puede establecer el text' of type propiedad text' of type gchararray’ a partir del valor del tipo `data + TrayIcon + Series ‘
gtk.main () gtk.main ()

¿Qué debo hacer para que funcione?

Dos errores en el segundo a último bloque.

  1. GtkWarning: gtk_tree_view_column_cell_layout_set_cell_data_func: aserción `info! = NULL ‘

    En inglés, esto significa que el procesador de celdas no se encuentra en la lista de procesadores de celdas de la columna. set_cell_data_func agregar el procesador de celdas a la columna antes de llamar a set_cell_data_func .

  2. Advertencia: no se puede establecer la propiedad ‘texto’ de tipo `gchararray ‘a partir del valor de` typedata + TrayIcon + Series’

    Esto se debe a que la línea add_attribute hace que GTK + intente configurar el texto de la celda en un objeto Serie, que por supuesto falla. Sólo quita esa línea; La función de datos de celda ya se encarga de configurar el texto de la celda.

En codigo:

 col = gtk.TreeViewColumn(_("Series title")) cell = gtk.CellRendererText() col.pack_start(cell) col.set_cell_data_func(cell, get_series_title)