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

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

我对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)
python tkinter
1个回答
0
投票

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

您需要将条目更改为此:

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

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

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