有沒有方法通過點擊列來排序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您好我的意思是當您單擊列標題,它將按升序或降序對該列進行排序。謝謝! –