PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit TreeView (GTK2)



Pinocchino
08-05-2006, 19:30
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?