用python的tkinter模块实现表格功能

本文探讨了如何在Python的tkinter模块中实现表格功能,由于该模块本身不支持表格组件,作者通过使用Entry和Text类结合循环创建了一个简易表格,并通过列表存储这些组件以便引用。后续还提出了改进思路,如利用字典和Text对象进一步优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值