为什么我的Tkinter计算器只返回零?

我对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)
tangjw08 回答:为什么我的Tkinter计算器只返回零?

尽管您创建了两个IntVar,但是您并未将它们与条目相关联,因此它们永远不会改变。

您需要将条目更改为此:

numVal1 = Entry(nEadd,textvariable=na1).place(x=20,y=10)
numVal2 = Entry(nEadd,textvariable=na2).place(x=20,y=50)

此外,您不应创建多个Tk实例。如果您需要另一个窗口,请使用Toplevel

本文链接:https://www.f2er.com/3155848.html

大家都在问