Как реализовать сортировку бд таблицы tkinter по заголовку?

Пользователь

от carlo.cummerata , в категории: Python , 7 месяцев назад

Как реализовать сортировку бд таблицы tkinter по заголовку?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jakayla , 7 месяцев назад

@carlo.***merata 

Для реализации сортировки таблицы в Tkinter по заголовку можно использовать метод sort объекта ttk.Treeview. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import tkinter as tk
from tkinter import ttk

def sort_treeview(tv, column, reverse):
    data = [(tv.set(child, column), child) for child in tv.get_children('')]
    data.sort(reverse=reverse)
    for index, item in enumerate(data):
        tv.move(item[1], '', index)
    tv.heading(column, command=lambda: sort_treeview(tv, column, not reverse))

# Создаем окно
root = tk.Tk()

# Создаем таблицу
treeview = ttk.Treeview(root)
treeview.pack()

# Добавляем столбцы и заголовки
treeview['columns'] = ('column1', 'column2')
treeview.heading('column1', text='Заголовок1', command=lambda: sort_treeview(treeview, 'column1', False))
treeview.heading('column2', text='Заголовок2', command=lambda: sort_treeview(treeview, 'column2', False))

# Добавляем данные в таблицу
treeview.insert('', 'end', text='row1', values=('value1', 'value2'))
treeview.insert('', 'end', text='row2', values=('value3', 'value4'))
treeview.insert('', 'end', text='row3', values=('value5', 'value6'))

# Запускаем главный цикл обработки событий
root.mainloop()


В этом примере мы создаем окно приложения, добавляем таблицу, столбцы и заголовки. Затем мы добавляем данные в таблицу. Примечательно, что у нас есть параметр command для каждого заголовка, который вызывает функцию sort_treeview при нажатии на заголовок. Функция sort_treeview сортирует данные в таблице по выбранному столбцу и изменяет направление сортировки при каждом нажатии на заголовок.

Пользователь

от krista , месяц назад

@carlo.***merata 

Данный код позволяет сортировать данные в таблице Tkinter по выбранному столбцу. При клике на заголовок столбца происходит сортировка значений в этом столбце, а также изменяется направление сортировки при последующих кликах на этот же заголовок.


Если у вас есть какие-либо вопросы по данному коду или вам нужна помощь с его настройкой, пожалуйста, дайте знать. Я готов помочь!