Как создать таблицу в tkinter?

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

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

Как создать таблицу в tkinter?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от enid , 6 месяцев назад

@dorothea_stoltenberg 

Для создания таблицы в tkinter можно использовать виджет Table из библиотеки tkinter.ttk, а также элементы Frame и Label для создания заголовков и содержимого таблицы.


Вот пример кода, который создает простую таблицу с заголовками и тремя строками данных:

 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
import tkinter as tk
from tkinter import ttk

class Table:
    def __init__(self, root):
        # Создаем элементы таблицы
        self.table_frame = ttk.Frame(root)
        self.table_frame.pack()

        # Заголовки столбцов
        self.headers = ['Header 1', 'Header 2', 'Header 3']
        for i, header in enumerate(self.headers):
            label = ttk.Label(self.table_frame, text=header)
            label.grid(row=0, column=i, padx=10, pady=10)

        # Данные
        self.data = [
            ['Data 1', 'Data 2', 'Data 3'],
            ['Data 4', 'Data 5', 'Data 6'],
            ['Data 7', 'Data 8', 'Data 9']
        ]
        for row in range(len(self.data)):
            for col in range(len(self.data[row])):
                label = ttk.Label(self.table_frame, text=self.data[row][col])
                label.grid(row=row+1, column=col, padx=10, pady=10)


root = tk.Tk()
table = Table(root)
root.mainloop()


Здесь мы создаем экземпляр класса Table и передаем в него главное окно root из tkinter. Внутри конструктора класса мы создаем фрейм (table_frame), куда размещаем заголовки и данные таблицы. Заголовки являются экземплярами виджета Label и размещаются в первой строке фрейма. Данные также являются экземплярами виджета Label и размещаются под заголовками в соответствующих строках и столбцах фрейма.

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

от charles.orn , месяц назад

@dorothea_stoltenberg 

Для создания таблиц в Tkinter также можно использовать библиотеку tkintertable, которая предоставляет более продвинутые функции и возможности для работы с таблицами. Вот пример использования библиотеки tkintertable для создания простой таблицы:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import tkinter as tk
from tkintertable.Tables import TableCanvas

root = tk.Tk()

data = {
    'columns': ['Column 1', 'Column 2', 'Column 3'],
    'data': [
        ['Data 1', 'Data 2', 'Data 3'],
        ['Data 4', 'Data 5', 'Data 6'],
        ['Data 7', 'Data 8', 'Data 9']
    ]
}

table = TableCanvas(root, data=data)
table.show()

root.mainloop()


В данном примере мы создаем главное окно root, создаем данные для таблицы data с заголовками столбцов и данными, и используем TableCanvas из библиотеки tkintertable для создания таблицы на основе этих данных. Функция table.show() отображает таблицу в окне Tkinter.