2010-02-06 70 views
2

我有一个ListStore建模Tag s列表。该列表可能会与ListStore分开。我想要做的是收听我的TagList类中的TagRemoved事件,并在事件触发时从ListStore中删除Tag。但是,我似乎无法找到一种方法来搜索ListStore包含给定Tag的行,以便我可以将其删除。在Gtk中,如何在包含特定值的行中搜索ListStore?

有没有办法做到这一点?

回答

3

A GtkListStore实现了GtkTreeModel接口,该接口包含所需的树遍历操作。据我所知,没有便利的API搜索列表/树存储,所以你必须推出自己的。

由于您只是遍历GtkListStore,因此您可以忽略处理子/父关系的所有API,并且只需使用gtk_tree_model_iter_first()gtk_tree_model_iter_next()来遍历列表。

或者,如果你已经知道了删除标记的索引的存储设备(例如,从TagRemoved事件),你可以把它转换成一个GtkTreePath和使用gtk_tree_model_get_iter()检索有关该行的情况下直接搜索。

0

GtkListStore在内部实现为linked list,所以您应该自己扫描模型。

相关问题