2015-03-23 4 views
0

Je suis en train d'ajouter dynamiquement CellRenderer personnalisée à mon Gtk.Treeview avec en appelant set_attributes:gtk.TreeView n'ajouter un moteur de rendu personnalisé avec l'affirmation 'gtk_cell_area_has_renderer (région, renderer)' a échoué

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); 
    } 

Malheureusement, échoue avec l'erreur

assertion 'gtk_cell_area_has_renderer (area, renderer)' failed 

Répondre

0

Vous devez appeler Gtk.TreeViewColumn.pack_start avant d'affecter le moteur de rendu.

est ici le code de travail:

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); 
    }