Как ввести целочисленное значение в переменную в Tkinter, Python?
Пишу небольшой калькулятор на Python, используя модуль Tkinter для GUI. Столкнулся с проблемой: я не могу ввести именно целочисленное значение в переменную. При попытке сложить два введенных числа, выдает ошибку: TypeError: unsupported operand type(s) for +: 'StringVar' and 'StringVar'. Пробовал так же использовать IntVar - ошибка та же: TypeError: unsupported operand type(s) for +: 'IntVar' and 'IntVar'. Хотелось бы узнать, как вводить целочисленные значения в переменные и выполнять с ними арифметические действия.
Код:
from tkinter import *
root = Tk()
root.title('Calculator Pro')
root.geometry("300x300")
def sum():
print (number1 + number2)
number1 = StringVar()
number2 = StringVar()
number1_entry = Entry(textvariable=number1)
number1_entry.pack()
number2_entry = Entry(textvariable=number2)
number2_entry.pack()
bt = Button(text="Summa", command=sum)
bt.pack()
root.mainloop()
Скриншот (так, на всякий случай):
Ответы (1 шт):
Автор решения: splash58
→ Ссылка
Сделайте переменные IntVar и получите значения перед суммированием
def sum():
print (number1.get() + number2.get())
number1 = IntVar()
number2 = IntVar()
либо переопределите класс
class myIntVar(IntVar) :
def __add__(self, other) :
return self.get()+other.get()
def sum():
print (number1 + number2)
number1 = myIntVar()
number2 = myIntVar()
