为什么 grid(row=) 停在 3 处? (tkinter)

问题描述 投票:0回答:1

我正在制作一个待办事项列表,并且我制作了一个添加按钮,它仅在第一次有效,并且在它停留在同一位置之后

我尝试为待办事项的行创建两个变量 1,为添加按钮创建一个变量,每次添加一个变量时,它们都会增加 1

我原以为添加按钮每次都会下降一行,但相反,它下降了一次,然后就停留在那里

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_new_check()

tk.Button(root, font=('Arial', 10), text="+", command=add_new_check).grid(row=var2, columnspan = 5)

root.mainloop()
python tkinter todo
1个回答
0
投票

当您调用

tk.Checkbutton().grid(row=var1, column=0)
时,它会将小部件放置在
var1
定义的行处。它不(也不能!)记住它是基于变量的,并在变量更改时自行更新。这根本不是它的工作原理。

如果您想稍后更改该行,则必须使用新的行值再次调用

grid

© www.soinside.com 2019 - 2024. All rights reserved.