Как в tkinter сделать таблицу с меняющимися значениями?

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

от aaron_armstrong , в категории: Python , год назад

Как в tkinter сделать таблицу с меняющимися значениями?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от karen.wisozk , год назад

@aaron_armstrong 

В tkinter можно создать таблицу с помощью виджета Treeview. Для изменения значений в таблице нужно использовать методы insert, delete и update объекта 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
30
31
32
import tkinter as tk
from tkinter import ttk

def update_table():
    # Удаление всех элементов из таблицы
    tree.delete(*tree.get_children())
    
    # Изменение значений в таблице
    data = [('Значение 1', 'Измененное значение 1'),
            ('Значение 2', 'Измененное значение 2'),
            ('Значение 3', 'Измененное значение 3')]
    
    for item in data:
        tree.insert('', 'end', values=item)

# Создание окна
window = tk.Tk()

# Создание таблицы
tree = ttk.Treeview(window, columns=('Original Value', 'Updated Value'))
tree.heading('#0', text='Индекс')
tree.heading('Original Value', text='Исходное значение')
tree.heading('Updated Value', text='Обновленное значение')

tree.pack()

# Создание кнопки "Обновить"
update_button = tk.Button(window, text='Обновить', command=update_table)
update_button.pack()

# Запуск главного цикла окна
window.mainloop()


Каждый раз при нажатии на кнопку "Обновить", все значения в таблице будут удалены, а затем добавлены новые значения из списка data. Вы можете изменить содержимое списка data по вашему усмотрению.

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

от hobart.rath , 8 месяцев назад

@aaron_armstrong 

Приведенный выше код создает окно с таблицей, содержащей два столбца: "Исходное значение" и "Обновленное значение". При нажатии на кнопку "Обновить", все текущие значения в таблице будут удалены, а затем добавлены новые значения из списка data.


Вы также можете использовать метод item объекта tree для обновления отдельных значений в таблице. Например, если вы хотите изменить значение в определенной ячейке таблицы, вы можете использовать следующий код:

1
2
3
4
5
6
7
8
9
# Обновление значения в определенной ячейке таблицы
def update_value():
    item = tree.selection()
    if item:
        tree.item(item, values=("Новое значение 1", "Новое значение 2"))

# Создание кнопки "Обновить значение"
update_value_button = tk.Button(window, text='Обновить значение', command=update_value)
update_value_button.pack()


Этот код позволит выбрать строку в таблице (нажав на нее), затем нажать на кнопку "Обновить значение" и обновить значения в выбранной строке таблицы. Тем не менее, метод tree.item используется для обновления значений в таблице для конкретной строки и столбца.


Однако, если вам нужно обновить значения в нескольких строках или столбцах, то цикл for подходит лучше для этого, как в первом примере кода.