Probleme mit TreeView (GTK2)

Antworten
Nachricht
Autor
NTA

Probleme mit TreeView (GTK2)

#1 Beitrag von NTA » 08. Mai 2006 19:54

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:

Code: Alles auswählen

enum{
    COL_PICTURE = 0,
    COL_TEXT1,
    COL_TEXT2,
    COL_NUMBER
} ;
struct data{
    GtkWidget *treeview;
} list;
callback für das hinzufügen von den Daten :

Code: Alles auswählen

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 :

Code: Alles auswählen

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 :

Code: Alles auswählen

.
.
.
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?

Antworten