我对Tkinter相当陌生,我正在尝试编写一个简单的计算器。我的问题是,无论我提供条目小部件什么整数,总和总是返回零。任何帮助将不胜感激。
我已经尝试将变量变成全局变量,从而得到相同的结果。我也尝试将条目从StringVar()转换为int,但这会导致无效的文字错误。
((ValueError:以10为底的int()的无效文字:'')
def addRes():
ni1 = int(na1.get())
ni2 = int(na2.get())
result = ni1 + ni2
resAdd = str(result)
Radd = Tk()
Radd.geometry("50x50")
addL = Label(Radd, text= resAdd).pack()
nEadd = Tk()
nEadd.geometry("200x200")
na1 = IntVar()
na2 = IntVar()
numVal1 = Entry(nEadd).place(x=20,y=10)
plusL = Label(nEadd, text= "+").place(x=20,y=30)
numVal2 = Entry(nEadd).place(x=20,y=50)
addResult = partial(addRes)
numSubmit = Button(nEadd, text= "Submit", command = addResult).place(x=40,y=70)
尽管您创建了两个IntVar
,但是您并未将它们与条目相关联,因此它们永远不会改变。
您需要将条目更改为此:
numVal1 = Entry(nEadd, textvariable=na1).place(x=20,y=10)
numVal2 = Entry(nEadd, textvariable=na2).place(x=20,y=50)
此外,您不应创建多个Tk
实例。如果需要另一个窗口,请使用Toplevel