如何从 Gtk.TreeStore 中删除父 TreeIter 的所有子节点?
How to remove all child nodes from parent TreeIter from Gtk.TreeStore?
给定一个 TreeStore 和 TreeIter,如何在不删除父节点的情况下从父节点中删除所有子节点? None个都选中了,只是想清除父节点下的一组节点。
ParentNode
+- Child 1
+- Child 2
+- Child 3
所以删除"Child 1-3"并保留ParentNode。
这需要以某种方式循环:
TreePath p = this.game_store.GetPath (this.players_iter);
p.Down ();
TreeIter i = new TreeIter ();
this.game_store.GetIter (out i, p);
this.game_store.Remove (ref i);
试试 clear() 方法。
供您参考:
试试这个:
while (this.game_store.Remove (ref i));
Documentation of Remove function says:
"@iter 被设置为该级别的下一个有效行,"
"Return %TRUE if @iter is still valid, %FALSE if not."
给定一个 TreeStore 和 TreeIter,如何在不删除父节点的情况下从父节点中删除所有子节点? None个都选中了,只是想清除父节点下的一组节点。
ParentNode
+- Child 1
+- Child 2
+- Child 3
所以删除"Child 1-3"并保留ParentNode。
这需要以某种方式循环:
TreePath p = this.game_store.GetPath (this.players_iter);
p.Down ();
TreeIter i = new TreeIter ();
this.game_store.GetIter (out i, p);
this.game_store.Remove (ref i);
试试 clear() 方法。
供您参考:
试试这个:
while (this.game_store.Remove (ref i));
Documentation of Remove function says:
"@iter 被设置为该级别的下一个有效行," "Return %TRUE if @iter is still valid, %FALSE if not."