Tkinter待办列表添加按钮仅下移一次后固定,grid(row=)不更新问题求助
问题分析与解决方法
问题核心:你仅在初始化时给添加按钮设置了一次grid布局的行位置,后续var2变量虽然自增,但按钮的布局参数不会自动更新,所以只会下移一次后固定。
修改方案
- 先将添加按钮实例化为变量,避免直接链式调用
grid导致无法后续修改布局 - 在
add_new_check函数中,每次更新var2后,重新调用按钮的grid方法更新行位置
修改后的代码:
import tkinter as tk root = tk.Tk() root.geometry("160x270") var1 = 0 var2 = 1 def add_new_check(): global var1, var2 tk.Entry().grid(row=var1, column=1) tk.Checkbutton().grid(row=var1, column=0) var1 += 1 var2 += 1 # 每次添加后更新按钮的行位置 add_btn.grid(row=var2, columnspan=5) add_new_check() # 先实例化按钮再设置初始布局 add_btn = tk.Button(root, font=('Arial', 10), text="+", command=add_new_check) add_btn.grid(row=var2, columnspan=5) root.mainloop()
这样每次点击添加按钮后,都会重新设置按钮的行号为最新的var2值,按钮就能随待办项的增加持续下移。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

