我希望能够在单击按钮SOLVE
时x + y
执行计算。
按照我的做法,我仍然必须在控制台而不是在输入块中输入x
和y
的值,单击SOLVE
按钮后,它会返回:
"类型错误: + 不支持的操作数类型:"无类型"和"无类型">
法典:
import tkinter
from tkinter import *
window = tkinter.Tk()
window.title("SOLVE MATH")
def solve_now():
x= tkinter.Label(window, text="X").pack()
X = tkinter.Entry(window, text=int(input("Enter X value:
"))).pack()
y = tkinter.Label(window, text="Y").pack()
Y = tkinter.Entry(window, text=int(input("Enter Y value:
"))).pack()
ans = X + Y
tkinter.Label(window, text=ans).pack()
tkinter.Button(window, text="SOLVE",
command=solve_now).pack()
window.mainloop()
这如何获取tkinter entry
中的值以对其进行计算。为了实现这一点,您必须创建entry widget
然后使用get
函数检索条目中的值以进行计算。在此处阅读有关条目小部件的更多信息 条目小部件
使用input
可让您在控制台中键入您的值。您之所以Nonetype error
,是因为您必须将几何管理器pack
放置在entry widget
函数之后的下一行。
entry1 = Entry(window )
entry1.pack()
完整代码
import tkinter
from tkinter import *
def solve_now():
ans = float(float(entry1.get()) + float(entry2.get()))
print(ans)
l3.config(text="Answer : "+str(ans))
window = tkinter.Tk()
window.title("SOLVE MATH")
l1 = Label(window, text="Enter Value X")
l1.pack()
entry1 = Entry(window, )
entry1.pack()
l2 = Label(window, text="Enter value Y")
l2.pack()
entry2 = Entry(window)
entry2.pack()
b1 = Button(window, text="SOLVE",
command=solve_now)
b1.pack()
l3 = Label(window)
l3.pack()
window.mainloop()