Gtk.TreeModelFilter,使用VisibleFunc时没有自动显示父级的方法?

Gtk.TreeModelFilter, no automatic way to show parent when using VisibleFunc?

提问人:Damn Vegetables 提问时间:12/22/2022 最后编辑:Damn Vegetables 更新时间:12/22/2022 访问量:33

问:

似乎有两种相互排斥的过滤器使用方式:

  1. 设置函数以确定可见性。
  2. 设置布尔列以表示可见性。

(1) 的问题在于,如果任何祖先与函数不匹配,则不会显示匹配的子项。例如,如果 VisibleFunc 返回 true,则当当前节点的名称包含以下树的“b”时,将仅显示“bc”,而不显示“ab”,因为其父节点“a”没有“b”。

  • 一个
    • 、乙
    • 交流
  • b
    • c

我认为在大多数用例中,这不是用户想要的。我看到一个现有的问题,答案是用(2)代替。基本上,答案的作用似乎是手动遍历树,如果当前节点符合条件,则迭代到根节点并更改所有祖先的可见性。它会起作用,但看起来有点尴尬,因为它需要修改 TreeStore 本身并执行手动遍历。

由于我认为显示匹配的子节点是一个常见的用例,即使不是它的所有祖先都匹配,(1)对此没有任何选择吗?比如,继续将 VisibleFunc 应用于与函数不匹配的节点的所有后代,并自动使所有祖先可见?或者,使用(2)是唯一的方法吗?

gtk gtktree视图

评论


答: 暂无答案