我正在学习Python,我想用它来创建一个简单的GUI应用程序,因为Tkinter
已经内置(并且使用起来非常简单)我想用它来构建我的申请。
我想创建一个应用程序,它将显示一个包含我从数据库加载的数据的表。
我搜索了table
,但未能找到有关Tkinter table
组件的任何示例和/或文档。
Tkinter
是否有内置的table
组件?如果没有,我可以/我应该使用什么呢?
答案 0 :(得分:31)
您可以使用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()
您可以通过访问网格的子项并从中获取值来获取数据。
答案 1 :(得分:22)
Tkinter没有内置的表格小部件。您可以使用的最接近的是tkinter子包ttk
的Listbox
或Treeview
。
但是,您可以使用tktable,它是Tcl/Tk
TkTable
窗口小部件的包装器,由Guilherme Polo编写。 注意:要使用此包装程序库,首先需要安装原始Tk的TkTable
库,否则会出现“导入错误”。
答案 2 :(得分:17)
如果表格是只读的,并且您使用的是足够现代版本的Tkinter,则可以使用ttk.Treeview小部件。
您还可以非常轻松地创建Entry
或Label
小部件的网格。请参阅此答案以获取示例:https://stackoverflow.com/a/11049650/7432
答案 3 :(得分:12)
您可以使用tkintertable。请参阅here如何开始使用它。
答案 4 :(得分:2)
除了@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()
答案 5 :(得分:2)
大家好,我们可以使用漂亮的库来制作像 tkinter 中的 sql 那样出色的表。
首先在cmd中执行以下代码安装prettytable库
pip install prettytable
现在这是一个用于制作表格的不言自明的代码:
from prettytable import PrettyTable
from tkinter import *
win=Tk()
t=Text(win)#Inside text widget we would put our table
x=PrettyTable()
x.field_names = ["City name", "Area", "Population", "Annual Rainfall"]
x.add_row(["Adelaide", 1295, 1158259, 600.5])
x.add_row(["Brisbane", 5905, 1857594, 1146.4])
x.add_row(["Darwin", 112, 120900, 1714.7])
x.add_row(["Hobart", 1357, 205556, 619.5])
x.add_row(["Sydney", 2058, 4336374, 1214.8])
x.add_row(["Melbourne", 1566, 3806092, 646.9])
x.add_row(["Perth", 5386, 1554769, 869.4])
t.insert(INSERT,x)#Inserting table in text widget
t.pack()
win.mainloop()
在 t.insert(INSERT,x) 后面加上下面这行代码,使这个表只读
t.config(state=DISABLED)
这种方法可以很容易地制作表格。如果您想了解有关 Prettytable 的更多信息,click here
答案 6 :(得分:1)
https://github.com/clarenceangel/tkinterstuff我做了这个,但我不是专业人士。它确实创建了一个表,并将其作为一个框架返回,您可以将其添加到框架或根。您可以为它添加任意数量的行和列的csv,只要这些列在每行上都是偶数。
答案 7 :(得分:0)
我是用纯Python编写的名为tksheet
的tkinter表小部件的作者,它仅适用于Python 3.63 +
它可以使用tkinter画布工作,并且仅重绘表格的可见部分,因此即使有数亿个单元格,它也可以非常平稳地运行
在许多其他功能中,您还可以轻松更改任何颜色并突出显示单元格的背景和前景
您可以在这里找到存储库:https://github.com/ragardner/tksheet
答案 8 :(得分:0)
您可以尝试使用tksheet小部件,就像tkinter中的excel文件一样。 您还可以在其中制作表格。 如果您使用Windows,则可以使用来安装它,
if(notAvailable){
floatingActionButton.setEnabled(false);
}
并且在导入tkinter时可以使用
pip install tksheet