#python #python-3.x #tkinter
#python #python-3.x #tkinter
Вопрос:
Я делаю калькулятор в Tkinter, и у меня много проблем. Я получаю ошибки, которые я не понимаю. Вот соответствующие фрагменты кода:
def op(op):
global operation
operation = op
def calculate(operation):
number =(eval(str(str(num1.get) " " operation " " str(num2.get))))
messagebox.showinfo("Answer", str(number))
master = Tk()
master.title("")
#Create the first entry and title
num1text = Label(master, text="Number 1")
num1text.grid(row=0, column=1, padx=5)
num1 = Entry(master)
num1.grid(row = 1, column = 1, padx=5, pady=5)
#Create the first entry and title
num2text = Label(master, text="Number 2")
num2text.grid(row=0, column=2, padx=5)
num2 = Entry(master)
num2.grid(row = 1, column = 2, padx=5, pady=5)
#create the four operand buttons
butt1 = Button(text=" ", command=lambda: op(" "))
butt1.grid(row=3, column=1, sticky="nesw",)
butt2 = Button(text="-", command=lambda: op("-"))
butt2.grid(row=4, column=1, sticky="nesw")
butt3 = Button(text="*", command=lambda: op("/"))
butt3.grid(row=3, column=2, sticky="nesw")
butt4 = Button(text="/", command=lambda: op("*"))
butt4.grid(row=4, column=2, sticky="nesw")
#create the submit button
submitbutt = Button(text="Submit", command=lambda: calculate(operation))
submitbutt.grid(row=5, column=1, columnspan=2, sticky="nesw")
Я перепробовал много методов, может кто-нибудь помочь мне разобраться в этом?
Ответ №1:
Когда вы пытаетесь прочитать записи, вы должны вызвать метод get со скобками, num1.get()
:
number =(eval(str(str(num1.get()) " " operation " " str(num2.get()))))
в противном случае он вернет ссылку на метод get, но не значение.