如何检查GtkListStore
中是否已存在值以避免重复?动态地,我根据用户数据输入从数据库中获取值,但是如果用户键入与先前键入的单词相同或相似的单词,则它可以返回相同的结果,从而使得{{{{ 1}}。
以下是我目前用于将值添加到GtkListStore
中的函数:
GtkListStore
答案 0 :(得分:1)
您需要迭代列表并查找其中是否存在相同的数据。
struct CListLooupStruct
{
gbolean b_found;
struct al_t *l;
};
gbolean search_c_list_func(GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
gpointer data)
{
gchar name[MAX_NAME_LENGTH];
CListLooupStruct* lookup = (CListLooupStruct*)data;
gtk_tree_model_get (model, iter, 0, &name, -1)
if (/*compare name to lookup->name */)
{
lookup->b_found = TRUE;
return TRUE;
}
return FALSE;
}
在update_c_list()
功能中,您需要:
...
CListLooupStruct c_list_lookup = { FALSE, new_list };
gtk_tree_model_foreach(completionmodel, search_c_list_func, &c_list_lookup);
if (/* magic to avoid double */ c_list_lookup.b_found == FALSE )
...