我遵循的代码用项目填充我的组合框: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....
如何调用"清除全部"以从组合中删除所有项目,
我想用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);
它对我有用。
不知道是不是好办法,还在等待其他回应。