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

时间:2013-09-14 21:20:39

标签: c gtk

我已经按照代码填充了我的组合框中的项目: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....

如何调用“clearAll”删除组合中的所有项目

我想用model

重新创建gtk_list_store_new

但改为:

aaaa      aaaa
bbbb      bbbb

谢谢,

2 个答案:

答案 0 :(得分:4)

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

    gtk_list_store_clear (store);

你可能想检查这些字符串的所有权,因为我不太清楚它是怎么回事。然而,文档非常好:GtkListStore

答案 1 :(得分:1)

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

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

 gtk_combo_box_set_model(GTK_COMBO_BOX(combo_screen_share),NULL);

它对我有用。

我不知道它的好方法,还是等待其他回复。