0

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

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

谢谢,

4

2 回答 2

4

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

    gtk_list_store_clear (store);

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

于 2013-09-17T14:26:10.400 回答
1

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

根据我使用 Swing 的经验,我直奔并NULL设置model

 gtk_combo_box_set_model(GTK_COMBO_BOX(combo_screen_share),NULL);

它对我有用。

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

于 2013-09-15T07:33:27.447 回答