每当我将值放入第一个输入框时,它会更新所有输入框是否有任何改变方法,因此每个输入框都是独立的。
import tkinter
gui = tkinter.Tk()
num1e = int()
num2e = int()
num3e = int()
num4e = int()
num5e = int()
num6e = int()
num7e = int()
def Find():
pass
gui.geometry("450x450+500+300")
num1 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num1e).pack()
num2 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num2e).pack()
num3 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num3e).pack()
num4 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num4e).pack()
num5 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num5e).pack()
num6 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num6e).pack()
num7 = tkinter.Entry(gui, bd = 5, width = 1, textvariable = num7e).pack()
Sb = tkinter.Button(gui, text ="Find 8th", command = Find).pack()
gui.mainloop()
答案 0 :(得分:2)
int()
是0
>>> int()
0
因此代码将0
作为textvariable
传递给tkinter.Entry
初始值设定项。 (所有相同的值;这导致所有引用相同的变量--Tkinter不仅接受XXXVar
对象,还接受int
/ str
)
以下几行:
num1e = int()
num2e = int()
num3e = int()
num4e = int()
num5e = int()
num6e = int()
num7e = int()
应该是:
num1e = tkinter.IntVar()
num2e = tkinter.IntVar()
num3e = tkinter.IntVar()
num4e = tkinter.IntVar()
num5e = tkinter.IntVar()
num6e = tkinter.IntVar()
num7e = tkinter.IntVar()