tkinter有表格小部件吗?

Fre*_*ind 47 python tkinter

我正在学习Python,我想用它来创建一个简单的GUI应用程序,因为Tkinter它已经内置(并且使用起来非常简单),我想用它来构建我的应用程序.

我想创建一个应用程序,它将显示一个表,其中包含我从数据库加载的一些数据.

我搜索过table但无法找到有关Tkinter table组件的任何示例和/或文档.

是否Tkinter有一个内置的table组件?如果没有,我可以/我应该使用什么呢?

Ste*_*ven 36

你可以使用Tkinter的网格.

要创建一个简单的类似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()
Run Code Online (Sandbox Code Playgroud)

您可以通过访问网格的子项并从中获取值来获取数据.

  • 不,你不应该混合网格和包装. (11认同)
  • 如果我创建这样的表,创建后如何引用字段?如果我没猜错的话,你是说我可以用网格坐标引用东西? (2认同)
  • @Steven:“ b”代表什么?这是“ Entry”的常规名称吗? (2认同)

Sti*_*cky 25

Tkinter没有内置的表小部件.您可以使用的最接近的是一个Listbox或一个Treeviewtkinter的子包ttk.

但是,您可以使用tktable,它是Tcl/Tk TkTable小部件的包装器,由Guilherme Polo编写.注意:要使用此包装程序库,首先需要安装原始Tk TkTable库,否则会出现"导入错误".

  • 不敢相信不包括表格这样的基本 GUI 显示元素。来吧,tkinter... (6认同)

Bry*_*ley 18

如果表是只读的,并且您使用的是足够现代版本的Tkinter,则可以使用ttk.Treeview小部件.

您还可以非常轻松地创建网格EntryLabel小部件.请参阅此答案以获取示例:https://stackoverflow.com/a/11049650/7432

  • 很棒的例子[这里](http://www.daniweb.com/software-development/python/threads/350266/creating-table-in-python) (3认同)

小智 13

你可以使用tkintertable.请参阅此处如何开始使用它.

  • 现在重定向到https://github.com/dmnfarrell/tkintertable,它只表示它是**仅适用于Python 2** (3认同)

rag*_*ner 7

我是用纯tksheetPython 编写的 tkinter表小部件的作者,名为它仅适用于 Python 3.63+

它使用 tkinter 画布工作,并且只重绘表格的可见部分,因此即使有数亿个单元格也能流畅运行

在许多其他功能中,您还可以轻松更改任何颜色并突出显示单元格背景和前景

您可以在此处找到存储库:https : //github.com/ragardner/tksheet

  • (我知道这与这篇特定的文章无关,但是哦)我刚刚开始使用你的小部件,它太棒了,但是我无法开始工作的一件事是将实际工作表居中。我有align ='center',但使用pack将桌子在框架内居中时遇到问题 (2认同)

小智 5

除了@steven 响应之外,您还可以执行此操作以引用任何表格单元格

from Tkinter import *

root = Tk()

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

mainloop()
Run Code Online (Sandbox Code Playgroud)