Я пытаюсь создать приложение, которое будет конвертировать Дюймы в CM и наоборот, однако, когда я нажимаю кнопку с привязанной к ней функцией, чтобы получить ввод пользователя из поля ввода, чтобы выполнить правильные вычисления дляэто, я получаю ошибку, которая говорит, что Button
объект не может быть вызван.
Я уже рассмотрел много исправлений здесь, которые имеют такую же ошибку, но вместо этого Button
заменяется начто-то еще, однако решения этих вопросов были только потому, что они называли переменные так же, как и реальные объекты Tkinter.Мне не кажется, что я совершил ту же ошибку, но я мог бы просто сгореть и никогда ее не заметить.
from tkinter import *
# Create the window
root = Tk()
root.geometry("270x90")
# Text
cmText = Label(root, text = "CM:")
cmText.grid(row=1,column=1)
cmText.config(font=("Arial", 11))
inchText = Label(root, text = " IN:")
inchText.grid(row=3,column=1)
inchText.config(font=("Arial", 11))
# Label
equal = Label(root,text="=")
equal.grid(row=2,column=2)
# Entry Boxes
entry1 = Entry(root)
entry1.grid(row=1,column=2)
entry2 = Entry(root)
entry2.grid(row=3, column=2)
# Functions
def quitFunc(event):
root.destroy()
def inchConvert(event):
inchVar = float(entry2.get())
cm = inchVar * 2.54
entry1.insert(0,cm)
# Buttons
inchConvert = Button(root,text="▲")
inchConvert.grid(row=3, column=3, padx=5, pady=2)
inchConvert.bind("<Button-1>",inchConvert)
cmConvert = Button(root,text="▼")
cmConvert.grid(row=1,column=3, padx=5,pady=2)
clear = Button(root,text=" C ")
clear.grid(row=2,column=5,ipadx=5)
quitButton = Button(root,text="Quit")
quitButton.grid(row=2,column=6, padx=10)
quitButton.bind("<Button-1>",quitFunc)
# Main Processing Loop
root.mainloop()
Я получаю ошибку:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python35\lib\tkinter\__init__.py", line 1550, in __call__
return self.func(*args)
TypeError: 'Button' object is not callable
Обычночто должно произойти, это то, что переменная cm
будет вставлена в верхнее поле ввода (entry1
), когда я нажму кнопку со стрелкой вверх, но вместо этого при нажатии я получаю ошибку.