我想制作一个应用程序,该应用程序将显示一个包含从数据库加载的某些数据的表格。
我已经搜索了“table”,但是找不到任何关于“Tkinter table”组件的示例和/或文档。
Tkinter有内置的“table”组件吗?如果没有,我应该使用什么?
try:
from tkinter import *
except ImportError:
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()
你可以通过访问网格的子节点并从那里获取值来获取数据。b.pack()
了。 - Sam ChatsEntry
的传统名称吗? - Al LelopathTkinter没有内置的表格小部件。您可以使用的最接近的是tkinter子包ttk
中的Listbox
或Treeview
。
但是,您可以使用tktable,这是一个封装了Tcl/Tk
TkTable
窗口小部件的库,由Guilherme Polo编写。请注意:要使用此封装库,您首先需要安装原始Tk的TkTable
库,否则您将会收到“导入错误”。
如果表格是只读的,并且您正在使用足够现代的Tkinter版本,则可以使用ttk.Treeview小部件。
您还可以相当轻松地创建一组Entry
或Label
小部件。请参见此答案以查看示例:https://dev59.com/tGgu5IYBdhLWcg3w0qRK#11049650
我是一款名为tksheet
的纯Python编写的tkinter表格小部件的作者,仅支持Python 3.63+。
它使用tkinter画布工作并且只重新绘制表格的可见部分,因此即使有数亿个单元格,它也可以运行得相当流畅。
除了许多其他功能外,您还可以轻松更改任何颜色并突出显示单元格的背景和前景。
您可以在这里找到存储库:https://github.com/ragardner/tksheet
.grid()
而不是pack
。 - ragardnertksheet
交互的视频,例如使用Ctrl +单击选择多个不连续行,然后拖放它们以更改行的顺序等? - root您可以使用tkintertable。请查看wiki以获取开始使用的指南。
tkintertable
是为 Python 2 编写的,但它似乎是纯 Python 的 - 因此,由于它是开源的,将其更新以在 Python 3 中工作可能并不太困难。 - martineau除了@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()
大家好,我们可以使用 prettytable 库来创建像 tkinter 中的 SQL 表格一样漂亮的表格。
首先在命令行中执行以下代码来安装 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的信息,请点击这里
您可以尝试使用tksheet小部件,它就像tkinter中的Excel文件一样。您可以在其中制作表格。如果您使用Windows操作系统,则可以使用以下方式进行安装:
pip install tksheet
and when importing in tkinter you can use,
from tksheet import Sheet
import tkinter as tk
补充@Jojojustin和@Steven的意见 - 使“表格”具有响应性
from tkinter import *
root = Tk()
row = 5
col = 5
cells = {}
for i in range(row):
for j in range(col):
root.columnconfigure(j,weight=20) # making the columns responsive
root.rowconfigure(i,weight=20) # making the rows responsive
b = Entry(root,text="")
b.grid(row=i,column=j,sticky=NSEW)
cells[(i,j)] = b
root.mainloop()