Сортировка столбца Tk treeview

Существует ли способ отсортировать записи в Tk Treeview путем нажатия на столбец? Удивительно, я не мог найти документацию/учебное руководство для этого.

11
задан Reinstate Monica 27 December 2009 в 20:18
поделиться

1 ответ

patthoyts из #tcl указали, что демо-программа TreeView Tk имеет функциональность подобного рода. Вот его Python-эквивалент:

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))
[...]
20
ответ дан 3 December 2019 в 02:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: