python的tkinter模块是没有表格组件的,那么怎样用它实现表格功能呢,下面是一些探索。
我们可以用Entry或Text类使用重复语句来实现。代码如下:
import tkinter as tk
root = tk.Tk()
root.title('tkinter模拟表格')
for r in range(4):
for c in range(3):
widget = tk.Entry(root)
widget.grid(row=r,column=c)
root.mainloop()
运行界面如下图

界面虽然有了,却不便引用每个单元格,于是改进代码,思路是把创建的每个Entry对象放到一个列表里。代码如下:
import tkinter as tk
root = tk.Tk()
root.title('tkinter模拟表格')
table = []
row = [] #row里面加满一行的就添加到上面的table里,使table成为一个二维列表。
for r in range(4):
for c in range(3):
widget = tk.Entry(root)
widget.grid(row=r,column=c)
row.append(widget) #把每次创建的Entry对象添加到row列表里
table.append(row) #把row列表添加到table列表里,使table成为一个二维列表。
##加个表头试一下
field = ['姓名','性别','年龄']
for t in field:
table[0][field.index(t)].config(
textvariable=tk.StringVar(value=t),
justify='center',
state = 'disable', #不让改动可加这个参数,normal是可改动
)
root.mainloop()
运行界面如下图

这样每个单元格都可以用table[r][c]这种格式来引用了。
当然还可以进一步探索,比如不用列表用字典,用Text对象代替Entry等。