добавить список в gtk_tree_view в C - PullRequest
1 голос
/ 01 февраля 2011

человек,

я собираюсь сделать небольшую функцию, которая имеет что-то, что я сделал с Gtk_tree_view, ответ об ошибке, такой как это:

(main:8026): Gtk-CRITICAL **: IA__gtk_tree_view_get_model: assertion `GTK_IS_TREE_VIEW (tree_view)' failed

(main:8026): Gtk-CRITICAL **: IA__gtk_list_store_append: assertion `GTK_IS_LIST_STORE (list_store)' failed

(main:8026): Gtk-CRITICAL **: IA__gtk_list_store_set_valist: assertion `GTK_IS_LIST_STORE (list_store)' failed
^C

и источник, здесь вы идете:

 void addlist(bahan *unit, const gchar *str)
    {
        GtkListStore *store;
        GtkTreeIter iter; // penyambung store_append and store_set

        store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(unit->treeview_aktifitas)));

        gtk_list_store_append(store, &iter); // need unary &, coz iter aint define like a pointer
        gtk_list_store_set(store, &iter, 1, str, -1);
    }

Как вы уже поняли, структура «юнита» должна была выглядеть так:

  typedef struct
    {
        GtkWidget *window;
        GtkWidget *notebook;
        GtkWidget *start;
        GtkWidget *verbose;
        GtkWidget *settings;
        GtkWidget *about;
        GtkWidget *statusbar;
        GtkWidget *treeview_aktifitas;
        guint statusbar_id;
    } bahan;

и связаны этим:

  unit->treeview_aktifitas = GTK_WIDGET(gtk_builder_get_object(main,"treeview1"));

в реальном случае, я использую 'glade 3' и имею два столбца в файле glade, как установить gtk_list_store_set?

очень признателен за любую дополнительную помощь:)

1 Ответ

2 голосов
/ 01 февраля 2011

ну, я нашел ошибку сейчас

    gtk_list_store_set(store, &iter, 1, str, -1);

только потому, что у меня два столбца, поэтому мне нужно

    gtk_list_store_set(store, &iter, 0,"aku", 1, "tes", -1);

, которые 0 представляют первый столбец и 1 представляют следующий столбец, и так далее -_- '

...