Probleme mit TreeView (GTK2)



  • Hallo Leute,

    ich habe irgend wie ein kleines Problem damit Daten in einem TreeView
    hinzu zufügen. Es kommt kein Fehler, es tauchen einfach keine Daten
    im TreeView auf. 😞

    ausschnitt aus der header datei:

    enum {
    	COL_PICTURE = 0,
    	COL_TEXT1,
    	COL_TEXT2,
    	COL_NUMBER
    } ;
    
    struct data{
    	GtkWidget  *treeview;
    } list;
    

    callback für das hinzufügen von den Daten :

    void
    add(GtkWidget *widget,
                         gpointer daten)
    {
      GtkTreeModel  *model;
      GtkTreeIter     iter;
      GdkPixbuf       *icon;
    
      model = gtk_tree_view_get_model(GTK_TREE_VIEW(daten));
    
      icon = load_pixbuf("icon.png"); // meine function zum laden eines bildes
    
      gtk_list_store_append(GTK_LIST_STORE(model), &iter);
      gtk_list_store_set(GTK_LIST_STORE(model), &iter,
                         COL_PICTURE, icon,
                         COL_TEXT1, "text",
    	             COL_TEXT2, "text",
                         -1);
    }
    

    function zum erstellen des treeviews :

    static GtkTreeView *
    create_treeview(void)
    {
    	GtkTreeViewColumn   *picture_column,
                                         *text1_column,
                                         *text2_column;
    	GtkCellRenderer     *picture_renderer,
                                     *text1_renderer,
                                     *text2_renderer;
    	GtkTreeView *treeview;
    	GtkListStore *model;
    
    	model = gtk_list_store_new(COL_NUMBER,
    						GDK_TYPE_PIXBUF,
    						G_TYPE_STRING,
    						 G_TYPE_STRING);
    
    	treeview = g_object_new(GTK_TYPE_TREE_VIEW,
    						"model", model,
    						"headers_visible", TRUE,
    						NULL);
    
    	picture_renderer = gtk_cell_renderer_pixbuf_new();
    	text1_renderer = gtk_cell_renderer_text_new();
    	text2_renderer = gtk_cell_renderer_text_new();
    
    	picture_column = g_object_new(GTK_TYPE_TREE_VIEW_COLUMN,
    										 "title", "Bild",
    										 "min-width", 120,
    										 NULL);
    
           text1_column = g_object_new(GTK_TYPE_TREE_VIEW_COLUMN,
    						 "title", "text1",
    						  "min-width", 400,
    						  NULL);
    
    	text2_column = g_object_new(GTK_TYPE_TREE_VIEW_COLUMN,
    						"title", "text2",
    						 NULL);
    
    	 gtk_tree_view_column_pack_start(picture_column,
                                                           picture_renderer,
                                                          FALSE);
    	gtk_tree_view_append_column(treeview, picture_column);
    	gtk_tree_view_column_pack_start(settings_column,
                                                           settings_renderer,
                                                          FALSE);
    	gtk_tree_view_append_column(treeview, settings_column);
    	gtk_tree_view_column_pack_start(button_column,
                                                          button_renderer,
                                                          FALSE);
    	gtk_tree_view_append_column(treeview, button_column);
    
    	return treeview;
    }
    

    signal handler ausschnitt für den button zum hinzufügen :

    .
    .
    .
    	g_signal_connect(GTK_OBJECT(hbuttons[0]),
    					 "clicked",
    					 G_CALLBACK(add),
    					 GTK_TREE_VIEW(list.treeview));
    .
    .
    .
    

    Also ich sitz da schon ne ganze weile dran und find den fehler nicht.
    Kann mir jemand helfen?


Anmelden zum Antworten