如何从组合框GTK C代码中删除所有项目



我遵循的代码用项目填充我的组合框:aaaabbbb,...:

GtkWidget *combo_screen_share;
GtkListStore *store;
GtkTreeIter iter;
       combo_screen_share=app_gtk_get_widget(/* .... */);

        GtkTreeModel *model;
        GtkCellRenderer *renderer=gtk_cell_renderer_text_new();
        model=GTK_TREE_MODEL((store=gtk_list_store_new(1,G_TYPE_STRING)));
        gtk_combo_box_set_model(GTK_COMBO_BOX(combo_screen_share),model);
        gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo_screen_share),renderer,TRUE);
        gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo_screen_share),renderer,"text",0,NULL);

        gtk_list_store_append(store,&iter);
        gtk_list_store_set(store,&iter,0,_("aaaa"),-1);
        gtk_list_store_append(store,&iter);
        gtk_list_store_set(store,&iter,0,_("bbbb"),-1);
        // and so on....

如何调用"清除全部"以从组合中删除所有项目,

我想用gtk_list_store_new重新创建model

但得到的却是:

aaaa      aaaa
bbbb      bbbb

谢谢

假设你上面放置的代码相同,你只需要调用

    gtk_list_store_clear (store);

您可能想检查这些字符串的所有权,因为我不太清楚它是如何进行的。然而,文档在这些方面非常好:GtkListStore

首先,我找不到任何文档如何从GTK+ C代码的组合框中删除所有项目,这真的很奇怪。

根据我对 Swing 的经验,我直接为model设置了NULL

 gtk_combo_box_set_model(GTK_COMBO_BOX(combo_screen_share),NULL);

它对我有用。

不知道是不是好办法,还在等待其他回应。

最新更新