默认情况下或以编程方式对树视图中的列进行排序

Emi*_*nte 1 python treeview gtk3

我知道我的问题已在这里提出:

如何以编程方式排序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
Run Code Online (Sandbox Code Playgroud)

set_sort_order(Gtk.SortType.ASCENDING)本来就很棒,但在我的情况下它并没有排序!

pto*_*ato 6

如果没有看到更多的代码,很难看出会出现什么问题,但是我会下注完全相同的事情,就像在另一个问题中那样:你需要将你的树模型包装成一个Gtk.TreeModelSort.

sorted_model = Gtk.TreeModelSort(model=liststore)
sorted_model.set_sort_column_id(1, Gtk.SortType.ASCENDING)
treeview = Gtk.TreeView(model=sorted_model)
Run Code Online (Sandbox Code Playgroud)

请注意,1在这种情况下,它是模型列的索引,而不是可见的树视图列.

  • 由于“模型列的索引,而不是可见的[东西]”而投票。感谢您。 (2认同)