Есть ли у tkinter табличный виджет? - PullRequest
41 голосов
/ 19 февраля 2012

Я изучаю Python, и я хотел бы использовать его для создания простого приложения с графическим интерфейсом, а поскольку Tkinter уже встроен (и очень прост в использовании), я хотел бы использовать его для создания своего приложения.

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

Я искал table, но не былсмог найти какие-либо примеры и / или документацию относительно Tkinter table компонента.

Имеет ли Tkinter встроенный компонент table?Если нет, что я могу / должен использовать вместо этого?

Ответы [ 5 ]

30 голосов
/ 25 июня 2015

Вы можете использовать сетку Ткинтера.

Чтобы создать простую таблицу в стиле Excel:

from Tkinter import *

root = Tk()

height = 5
width = 5
for i in range(height): #Rows
    for j in range(width): #Columns
        b = Entry(root, text="")
        b.grid(row=i, column=j)

mainloop()

Вы можете получить данные, обратившись к дочерним элементам сетки и получив оттуда значения.

22 голосов
/ 19 февраля 2012

Tkinter не имеет встроенного виджета таблицы. Самое близкое, что вы можете использовать, это Listbox или Treeview из подпакета tkinter ttk.

Однако вы можете использовать tktable , который является оболочкой для виджета Tcl/Tk TkTable, написанный Гильерме Поло . Примечание : чтобы использовать эту библиотеку-обертку, сначала необходимо установить оригинальную библиотеку Tk's TkTable, в противном случае вы получите «ошибку импорта».

17 голосов
/ 19 февраля 2012

Если таблица доступна только для чтения и вы используете достаточно современную версию Tkinter, вы можете использовать виджет ttk.Treeview .

Вы также можете довольно легко создать сетку из Entry или Label виджетов. Посмотрите этот ответ для примера: https://stackoverflow.com/a/11049650/7432

12 голосов
/ 31 марта 2012

Вы можете использовать tkintertable . См. здесь как начать его использовать.

2 голосов
/ 14 июня 2017

https://github.com/clarenceangel/tkinterstuff Я сделал это, но я не профессионал. Тем не менее, он создает таблицу и возвращает ее как фрейм, который можно добавить к фрейму или корню. Вы передаете его в формате csv с любым количеством строк и столбцов, если столбцы находятся в каждой строке, конечно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...