Gtk: GList in GtkList einfügen



  • Moin!

    Spontan habe ich mich dazu entschlossen, ein kleineres Projekt mit Gtk zu implementieren. Jetzt habe ich auch schon ein Problem: ich möchte eine GList in eine GtkList einfügen - das sieht dann z.B. so aus:

    GList *glist, *tmp;
    
    if (dwrap.open (conn, &err)) {
    	dwrap.admin.get_users (conn, &glist, &err);	
    	tmp = glist;
    	while (tmp) {
    		list_item = gtk_list_item_new_with_label ((char*)tmp->data);
    		gtk_container_add (GTK_CONTAINER (UserList), list_item);
    		tmp = tmp->next;
    	}
    	g_list_free (glist);
    	dwrap.close (conn);
    }
    

    'dwrap' ist eine Schnittstelle für Datenbanken - ich öffne die Verbindung, lasse mir eine Liste mit Benutzern generieren und füge die Liste bei Erfolg in die GtkList 'UserList' ein.

    Jetzt möchte ich das Einfügen aber durch eine Funktion implementieren und scheiter elendig daran. Hat jemand vielleicht einen Hint, wie sich das am besten lösen lassen könnte? Ein mieser Versuch meinerseits sah z.B. in etwa so aus:

    void gtk_create_list (GtkContainer *container, GList *glist) {
    	GList *tmp = glist;
    	GtkWidget *list_item;
    
    	while (tmp) {
    		list_item = gtk_list_item_new_with_label ((char*)glist->data);
    		gtk_container_add (container, list_item);
    		tmp = tmp->next;
    	}
    }
    

    Das vermurkst mir aber irgendwie die Glist - ich denke also, dass es zu irgendwelchen Speicherzugriffsfehlern kommt.

    Mfg, Lord Kefir



  • Wie ich gerade in einem anderen Forum las, hat sich das Problem ja erledigt 😉



  • Jup, hätte ich vielleicht mal erwähnen sollen 🙂

    Mfg, Lord Kefir


Anmelden zum Antworten