我知道我的问题已经在这里问过了:
How to Programmatically Sort TreeView
但是给出的链接没有任何链接,当我的窗口显示时我仍然无法对我的 TreeView 进行排序。
这是我的代码:
treeview = Gtk.TreeView(model=liststore)
col = renderer_text('Nom', 1, store=liststore, sortable=True)
col.set_sort_order(Gtk.SortType.ASCENDING) #??????????????????????????
treeview.append_column(col)
def renderer_text(title, col, editable=False, store=None, sortable=None):
render = Gtk.CellRendererText()
if editable:
render.set_property('editable', True)
render.connect('edited', text_edited, store, col)
column = Gtk.TreeViewColumn(title, render, text=col)
if sortable:
column.set_sort_column_id(col)
return column
set_sort_order(Gtk.SortType.ASCENDING) 会很棒,但在我的情况下它没有排序!
最佳答案
如果不查看您的更多代码,很难看出哪里出了问题,但我敢打赌与另一个问题中发生的事情完全相同:您需要将树模型包装在 Gtk.TreeModelSort
.
sorted_model = Gtk.TreeModelSort(model=liststore)
sorted_model.set_sort_column_id(1, Gtk.SortType.ASCENDING)
treeview = Gtk.TreeView(model=sorted_model)
请注意,在这种情况下,1
是模型列的索引,而不是可见的 TreeView 列。
关于python - 默认或以编程方式对 TreeView 中的列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18954160/