【发布时间】:2021-12-30 06:39:26
【问题描述】:
我正在创建一个简单的计算器,它将两个整数相加并在 A+B 行上显示结果。但是当我点击按钮并出现错误时,请你们帮我解释一下出了什么问题以及如何解决它,非常感谢你们。
from tkinter import *
parent = Tk()
A= Label(parent, text = "A").grid(row = 0, column = 0)
e1 = Entry(parent).grid(row = 0, column = 1)
B= Label(parent, text = "B").grid(row = 1, column = 0)
e2 = Entry(parent).grid(row = 1, column = 1)
AaddB=Label(parent, text = "A+B").grid(row = 6, column = 0)
def AaddB():
print (A+B)
submit = Button(parent, text = "PLUS",command = AaddB).grid(row = 4, column =1)
parent.mainloop()
【问题讨论】:
-
非常感谢,我只是尝试了那个解决方案,它并没有解决我的错误,我的错误是:TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType '
-
如果你已经解决了这个问题,你还需要将此行修复为
print (int(A.get())+int(B.get())) -
如果您仔细查看您的代码,您会发现
A和B只是Labels。您不能添加或计算小部件。因此,为这些标签分配一些其他名称并在AaddB()函数下方添加:A = int(e1.get())并在下一行,B = int(e2.get())此外,您应该避免在同一行/变量上创建和网格化小部件。这可能会导致错误。 -
你使用了
e1 = Entry(...).grid(...),它返回None。为什么不单独创建和网格呢?示例:e1 = Entry(...),在下一行:e1.grid(...)
标签: python tkinter tkinter-entry