GTK#:带有过滤和排序的树视图
Posted
技术标签:
【中文标题】GTK#:带有过滤和排序的树视图【英文标题】:GTK#: Tree View with Filter AND Sorting 【发布时间】:2019-04-09 01:45:03 【问题描述】:我有一个可以通过TreeModelFilter
过滤的树视图对象。
只要我用tree.Model = filter;
设置过滤器,
排序不再起作用。
有没有办法让过滤器工作并能够通过单击列标题进行排序?
总之,我想要一个filterable, searchable, sortable, multi-selection Tree View Control
来查看数据库中的结果。
【问题讨论】:
【参考方案1】:在阅读 Gtk+ 文档之后,似乎树视图可以同时是 filtered 和 sortable。
但是您将无法使用这些类中的任何一个。我敢打赌,您必须创建自己的模型来实现 sorting 的接口并提供过滤。
Gtk# 非常强大。不幸的是,它同时也非常复杂。
【讨论】:
【参考方案2】:要对可过滤模型进行排序,您需要用 Gtk.TreeModelSort 包装您的过滤模型。
sorted_model = Gtk.TreeModelSort(model=self.filter)
如果不想使用默认的排序方式,可以设置自定义排序功能。
sorted_model.set_sort_func(0, self.sort_tree, None)
稍后您可以将树视图设置为使用这种排序模型。
self.tree_view = Gtk.TreeView(model=sorted_model)
【讨论】:
以上是关于GTK#:带有过滤和排序的树视图的主要内容,如果未能解决你的问题,请参考以下文章
使用带有数据数组的 Yii2 和带有排序和过滤的 Gridview