我有一个ListStore
建模Tag
s 的列表。此列表可能会与ListStore
. 我想做的是TagRemoved
在我的TagList
课堂上收听事件,并Tag
从ListStore
事件触发时删除。但是,我似乎无法找到一种方法来搜索ListStore
包含给定的行Tag
,以便将其删除。
有没有办法做到这一点?
我有一个ListStore
建模Tag
s 的列表。此列表可能会与ListStore
. 我想做的是TagRemoved
在我的TagList
课堂上收听事件,并Tag
从ListStore
事件触发时删除。但是,我似乎无法找到一种方法来搜索ListStore
包含给定的行Tag
,以便将其删除。
有没有办法做到这一点?
AGtkListStore
实现了GtkTreeModel
接口,里面包含了你想要的树遍历操作。据我所知,没有用于搜索列表/树存储的便捷 API,因此您必须自己动手。
由于您只是简单地迭代 a GtkListStore
,因此您可以忽略所有处理子/父关系的 API,而只需使用gtk_tree_model_iter_first()
andgtk_tree_model_iter_next()
遍历列表。
或者,如果您已经知道商店中已删除标签的索引(例如,从您的TagRemoved
事件中),您可以将其转换为 aGtkTreePath
并用于gtk_tree_model_get_iter()
直接检索有问题的行而无需搜索。
GtkListStore 在内部实现为链表,因此您应该自己扫描模型。