Tkinter点击btn1每次给表格长宽各增加一个单位的实现问题
问题核心原因
你当前的代码无法生效的核心问题有两个:
- 表格渲染逻辑仅在程序启动时执行了一次,后续点击按钮仅修改了全局变量
y的数值,没有触发新单元格的生成操作,UI不会自动刷新 - 代码中存在HTML转义字符
",替换为正常双引号才能正常运行
调整后可直接运行的代码
from tkinter import * win = Tk() y = 3 def func(): global y old_size = y y += 1 # 新增最后一整行的单元格 for j in range(1, y): frm = Frame(win, bd=2) frm.grid(row=old_size, column=j) btn = Button(frm, bg="red") btn.grid() # 新增原有行的最后一列单元格 for i in range(1, old_size): frm = Frame(win, bd=2) frm.grid(row=i, column=old_size) btn = Button(frm, bg="red") btn.grid() # 初始化渲染初始尺寸的表格 for i in range(1, y): for j in range(1, y): frm = Frame(win, bd=2) frm.grid(row=i, column=j) btn = Button(frm, bg="red") btn.grid() btn1 = Button(win, command=func, text="扩大表格") btn1.grid() win.mainloop()
关键修改说明
- 将新增单元格的逻辑放到按钮点击触发的
func函数中,每次点击后自动补充对应位置的单元格,不需要重绘已有内容,性能更好 - 采用增量渲染逻辑,不会影响已经生成的表格内容
- 补充了按钮文本提示,方便操作
内容的提问来源于stack exchange,提问作者A K
相关产品推荐
相关产品推荐

