我有一個ListStore
建模Tag
s列表。該列表可能會與ListStore
分開。我想要做的是收聽我的TagList
類中的TagRemoved
事件,並在事件觸發時從ListStore
中刪除Tag
。但是,我似乎無法找到一種方法來搜索ListStore
包含給定Tag
的行,以便我可以將其刪除。在Gtk中,如何在包含特定值的行中搜索ListStore?
有沒有辦法做到這一點?
我有一個ListStore
建模Tag
s列表。該列表可能會與ListStore
分開。我想要做的是收聽我的TagList
類中的TagRemoved
事件,並在事件觸發時從ListStore
中刪除Tag
。但是,我似乎無法找到一種方法來搜索ListStore
包含給定Tag
的行,以便我可以將其刪除。在Gtk中,如何在包含特定值的行中搜索ListStore?
有沒有辦法做到這一點?
A GtkListStore
實現了GtkTreeModel
接口,該接口包含所需的樹遍歷操作。據我所知,沒有便利的API搜索列表/樹存儲,所以你必須推出自己的。
由於您只是遍歷GtkListStore
,因此您可以忽略處理子/父關係的所有API,並且只需使用gtk_tree_model_iter_first()
和gtk_tree_model_iter_next()
來遍歷列表。
或者,如果你已經知道了刪除標記的索引的存儲設備(例如,從TagRemoved
事件),你可以把它轉換成一個GtkTreePath
和使用gtk_tree_model_get_iter()
檢索有關該行的情況下直接搜索。
GtkListStore在內部實現爲linked list,所以您應該自己掃描模型。