python - Tkinter Treeview 列排序

标签 python sqlite sorting tkinter treeview

有没有办法通过单击列来对 Tk TreeView 中的记录进行排序?

我在 Tkinter 模块中显示了一个 Treeview 数据库表。该数据库链接到数据来源的 SQLite 数据库。

最佳答案

@Mayur 的想法是正确的,只是错过了 treeview_sort_column 的定义。我可以保证这项技术,尽管我实现调用的方式与命令选项不同。您可以通过this link查看也是如此(尽管它将来可能会消亡)

def treeview_sort_column(tv, col, reverse):
    l = [(tv.set(k, col), k) for k in tv.get_children('')]
    l.sort(reverse=reverse)

    # rearrange items in sorted positions
    for index, (val, k) in enumerate(l):
        tv.move(k, '', index)

    # reverse sort next time
    tv.heading(col, command=lambda: \
           treeview_sort_column(tv, col, not reverse))
[...]
columns = ('name', 'age')
treeview = ttk.TreeView(root, columns=columns, show='headings')
for col in columns:
    treeview.heading(col, text=col, command=lambda: \
                     treeview_sort_column(treeview, col, False))
[...]

关于python - Tkinter Treeview 列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46618459/

相关文章:

python - 如何从嵌套列表中提取特定项目并附加到新列?

python - WinPE中无法导入PyQt5/PySide的QtGui、QtWidgets模块

python - 如何将 Pandas DataFrame 转换为 Discord Embed?

Python + Facebook,轻松获取群组信息

perl - 使用 Perl DBI 在 sqlite3 db 上运行 sql 语句时出错

python - 一个线性函数,用于根据 python 中的不同条件按升序、降序对列表的字符串列表进行排序

mysql - 复杂的MySQL "ORDER BY"

sql - 查询在sql中按行排序

python - 使用 PyODBC、Python 连接到 SQLite3 服务器

javascript - 插入排序最后一项未定义