2

I'm trying to add dynamically custom CellRenderer to my Gtk.Treeview with by calling set_attributes:

    private void add_column (TrackColumns type) {
        var column = new Gtk.TreeViewColumn () ;
        column.title = type.get_title () ;
        var renderer = type.get_cell_renderer () ;
        column.set_attributes (renderer, "text", type) ;

        view.insert_column (column, -1);
    } 

Unfortunately, it fails with the error

assertion 'gtk_cell_area_has_renderer (area, renderer)' failed
Name is carl
  • 5,961
  • 3
  • 29
  • 44

1 Answers1

5

You have to call Gtk.TreeViewColumn.pack_start before assigning the renderer.

Here's the working code:

    private void add_column (TrackColumns type) {
        var column = new Gtk.TreeViewColumn () ;
        column.title = type.get_title () ;
        var renderer = type.get_cell_renderer () ;
        column.pack_start (renderer, true);
        column.set_attributes (renderer, "text", type) ;

        view.insert_column (column, -1);
    }
Name is carl
  • 5,961
  • 3
  • 29
  • 44