有没有方法通过点击列来排序Tk Treeview中的记录?Tkinter Treeview Column Sorting
我有一个Treeview数据库表在Tkinter模块中显示。数据库链接到数据来源的SQLite数据库。
有没有方法通过点击列来排序Tk Treeview中的记录?Tkinter Treeview Column Sorting
我有一个Treeview数据库表在Tkinter模块中显示。数据库链接到数据来源的SQLite数据库。
从here
for col in Columns:
treeview.heading(col, text=col, command=lambda _col=col: \
treeview_sort_column(treeview, _col, False))
谢谢@Mayur Shingote,但是当尝试这样做时,我会发生名称错误。 “NameError:name'treeview'未定义”不太确定这是为什么。 –
@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))
[...]
(听起来微不足道的,这取决于究竟是什么'点击column'意味着:请详细说明) – greybeard
@greybeard您好我的意思是当您单击列标题,它将按升序或降序对该列进行排序。谢谢! –