Я в основном делаю программу, которая вычисляет периметр и площадь определенной формы. Для этого я использую tkinter GUI.
В любом случае, я решил, что хочу, чтобы пользователь выделил контрольную кнопку, когда они закончат ввод своих чисел, чтобы я знал, когда собирать данные из виджет ввода в tkinter, но кажется, что моя контрольная кнопка не работает.
def perTriangle(): #PerTriangle means the perimeter of a triangle.
tk.Label(window, text = "Enter in the Numbers: ", background = "white").place(x = 1115, y = 100)
tk.Label(window, text = "Side 1: ", background = "white").place(x = 1115, y = 130)
entry1 = tk.Entry(window)
entry1.place(x = 1155, y = 130)
tk.Label(window, text = "Side 2: ", background = "white").place(x = 1115, y = 160)
entry2 = tk.Entry(window)
entry2.place(x = 1155, y = 160)
tk.Label(window, text = "Side 3: ", background = "white").place(x = 1115, y = 190)
entry3 = tk.Entry(window)
entry3.place(x = 1155, y = 190)
check1 = tk.IntVar()
cButton = tk.Checkbutton(window, text = "Enter: ", variable = check1)
cButton.place(x = 1115, y = 220)
if check1.get() == 1:
num1 = float(entry1.get())
num2 = float(entry2.get())
num3 = float(entry3.get())
ans = num1 + num2 + num3
tk.messagebox.showinfo("Your Answer is: ", str(ans))
После того, как контрольная кнопка отключена, ничего не запускается. Я не знаю, что я здесь делаю не так, потому что я думаю, что все работает, но это все равно не работает. Я не получаю никаких синтаксических ошибок с этой программой.
Затем я попытался использовать несколько функций, чтобы посмотреть, поможет ли это:
def perTriangle():
tk.Label(window, text = "Enter in the Numbers: ", background = "white").place(x = 1115, y = 100)
tk.Label(window, text = "Side 1: ", background = "white").place(x = 1115, y = 130)
entry1 = tk.Entry(window)
entry1.place(x = 1155, y = 130)
tk.Label(window, text = "Side 2: ", background = "white").place(x = 1115, y = 160)
entry2 = tk.Entry(window)
entry2.place(x = 1155, y = 160)
tk.Label(window, text = "Side 3: ", background = "white").place(x = 1115, y = 190)
entry3 = tk.Entry(window)
entry3.place(x = 1155, y = 190)
check1 = tk.IntVar()
cButton = tk.Checkbutton(window, text = "Enter: ", variable = check1)
cButton.place(x = 1115, y = 220)
isUserDone(check1)
def isUserDone(x):
if x.get() == 1:
calculationPTriangle()
def calculationPTriangle():
num1 = float(entry1.get())
num2 = float(entry2.get())
num3 = float(entry3.get())
ans = num1 + num2 + num3
tk.messagebox.showinfo("Your Answer is: ", str(ans))
И снова я получил тот же результат. Что я могу сделать, чтобы решить эту проблему? Я ценю любую помощь! Заранее спасибо!
Обновленный код после первоначального редактирования:
def perTriangle():
tk.Label(window, text = "Enter in the Numbers: ", background = "white").place(x = 1115, y = 100)
tk.Label(window, text = "Side 1: ", background = "white").place(x = 1115, y = 130)
entry1 = tk.Entry(window)
entry1.place(x = 1155, y = 130)
tk.Label(window, text = "Side 2: ", background = "white").place(x = 1115, y = 160)
entry2 = tk.Entry(window)
entry2.place(x = 1155, y = 160)
tk.Label(window, text = "Side 3: ", background = "white").place(x = 1115, y = 190)
entry3 = tk.Entry(window)
entry3.place(x = 1155, y = 190)
check1 = tk.IntVar()
cButton = tk.Checkbutton(window, text = "Enter: ", variable = check1, command = calculationPTriangle)
cButton.place(x = 1115, y = 220)
def calculationPTriangle():
num1 = float(entry1.get())
num2 = float(entry2.get())
num3 = float(entry3.get())
ans = num1 + num2 + num3
tk.messagebox.showinfo("Your Answer is: ", str(ans))