python - 默认或以编程方式对 TreeView 中的列进行排序

标签 python treeview gtk3

我知道我的问题已经在这里问过了:

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/

相关文章:

cocoa - 实现类似 Finder 的 TreeView ,并使用 NSOutlineview 延迟加载来表示其节点

python - GTK+3 : How to render INSENSITIVE widgets in the style of NORMAL widgets

python - 将变量写入文件,包括名称

c# - 带有图标的简单 WPF 数据绑定(bind)问题

c# - .NET 中的树集合

gtk3 - 如何获取 GLib.Settings 的范围

c - signal_connect 函数中的指针工作不正常

python - 最大内存 redis heroku django

python - Python 字符串中的 u 前缀是什么?

python - 从 Flask 路线开始 scrapy