2010-02-06 17 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,所以您應該自己掃描模型。

相關問題