我希望能够通过单击列按树对树视图进行排序。我只是使用从文档中获取的流行示例作为参考(https://python-gtk-3-tutorial.readthedocs.io/en/latest/treeview.html):
self.treeview = Gtk.TreeView.new_with_model(self.filter)
for i, column_title in enumerate(["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve"]):
renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(column_title, renderer, text=i)
self.treeview.append_column(column)
column.set_sort_column_id(i)
除了出现错误:
(test.py:26081):Gtk-CRITICAL **:12:35:03.856:gtk_tree_sortable_get_sort_column_id:断言'GTK_IS_TREE_SORTABLE(sortable)'失败
(test.py:26081):Gtk-CRITICAL **:12:35:03.856:gtk_tree_sortable_has_default_sort_func:断言'GTK_IS_TREE_SORTABLE(sortable)'失败
(test.py:26081):Gtk-CRITICAL **:12:35:03.856:gtk_tree_sortable_set_sort_column_id:断言'GTK_IS_TREE_SORTABLE(sortable)'失败
答案 0 :(得分:1)
在this post的帮助下,我找到了解决之道。
编辑以下行:
self.treeview = Gtk.TreeView.new_with_model(self.filter)
在
self.treeview = Gtk.TreeView.new_with_model(Gtk.TreeModelSort(self.filter))
并且应该可以工作。