سؤال

I am making a Python GUI where the user types in int values into an Entry widget and then the program adds these values together.

However, for some reason whenever I try to tell the program to add these values it comes up with the error:

TypeError: unsupported operand type(s) for +: 'Entry' and 'Entry'"

I have looked around but can't find anything on this topic. I have tried declaring the Entry widgets as ints and IntVars but it hasn't worked so I'm wondering if it is actually possible to add up Entry values.

هل كانت مفيدة؟

المحلول

First you must get the string from the Entry and then convert it to an integer.

from Tkinter import *
root = Tk()

e1 = Entry(root)
e2 = Entry(root)
l = Label(root)
def callback():
    total = sum(int(e.get()) for e in (e1, e2))
    l.config(text="answer = %s" % total)
b = Button(root, text="add them", command=callback)
for widget in (e1, e2, l, b):
    widget.pack()
b.mainloop()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top