我正在尝试获取一个treemodel(实际上是一个liststore),它可以被过滤和排序。我有以下代码
self.modelfilter = self.liststore.filter_new()
self.modelfilter.set_visible_func(\
self._visible_filter_function)
self.treeview.set_model(self.modelfilter)
其中self.liststore
和self.treeview
是标准的Gtk.ListStore
和{self._visible_filter_function
是一个过滤函数。在
问题是self.modelfilter
似乎不可排序。当我单击列标题(在self.treeview
中的列)对它们进行排序时,我得到
说树模型不可排序。在
这个问题在PyGtk中似乎是可以克服的。其思想是将ListStore、TreeModelFilter和TreeSortFilter一个叠在另一个内部,并将最后一个作为treeview的模型提供。在
然而,这个技巧在pythongtk+3中似乎不起作用。当我尝试的时候
self.modelfilter = self.liststore.filter_new()
self.modelfilter.set_visible_func(\
self._visible_filter_function)
self.sorted_and_filtered_model = \
Gtk.TreeModelSort(self.modelfilter)
self.treeview.set_model(self.sorted_and_filtered_model)
它抱怨道
Gtk.TreeModelSort(self.modelfilter)
TypeError: GObject.__init__() takes exactly 0 arguments (1 given)
现在我试图不带参数地获取Gtk.TreeModelSort
的实例。但是这个实例没有任何set_model
方法。在
我在这里迷路了。在
有没有其他方法来设置Gtk.TreeModelSort
的模型?或者,有没有一种完全不同的方法来获取一个经过过滤并可排序的treemodel对象,它可以显示在treeview中?在
我认为PyGObject还没有准备好。它没有可浏览的文档,有些东西还没有被观察到,尤其是:
谨致问候
相关问题 更多 >
编程相关推荐