【问题标题】:Why Does My Tkinter Calculator Only Return Zero?为什么我的 Tkinter 计算器只返回零?
【发布时间】:2019-11-05 23:16:04
【问题描述】:

我对 Tkinter 还很陌生,我正在尝试编写一个简单的计算器。我的问题是,无论我为条目小部件提供什么整数,总和总是返回为零。任何帮助将不胜感激。

我尝试将变量转换为全局变量,从而得到相同的结果。我也尝试将条目从 StringVar() 转换为 int,但这会导致无效的文字错误。

(ValueError: int() 基数为 10 的无效文字:'')

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)

【问题讨论】:

  • na1 和 na2 为空白

标签: python tkinter


【解决方案1】:

虽然您创建了两个IntVars,但您没有将它们与条目关联,因此它们永远不会改变。

您需要将条目更改为:

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

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

【讨论】:

    猜你喜欢
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 2020-04-27
    相关资源
    最近更新 更多