Может ли кто-нибудь помочь мне найти ошибку в моем коде Python GUI? - PullRequest
0 голосов
/ 05 марта 2019
def square():
    def calculate():
        global area
        global perimeter
        side = entry_variable.get()
        area = side * side
        area_variable.set(area)
        perimeter = 4 * side
        perimeter_variable.set(perimeter)
root = Tk()
root.minsize(width=400, height=400)
root.maxsize(width=400, height=400)
root.config(bg="Black")
entry_variable = IntVar()
area_variable = IntVar()
perimeter_variable = IntVar()

label1 = Label(root, text="", font=('Arial', 15, 'bold'), fg="white", bg='Black')
label1.grid()
label0 = Label(root, text="Enter the Side's measurement", font=('Arial', 15, 'bold'), fg="white", bg='Black')
label0.grid(row=1)
label00 = Label(root, text="", font=('Arial', 15, 'bold'), fg="white", bg='Black')
label00.grid(row=3)
entry1 = Entry(root, font=('Arial', 15, 'bold'), justify=RIGHT, textvariable=entry_variable, fg='black')
entry1.grid(row=2)
label2 = Label(root, text="Perimeter of the Square", font=('Arial', 15, 'bold'), fg="white", bg='Black')
label2.grid(row=5)
label3 = Label(root, text="Area of the Square", font=('Arial', 15, 'bold'), fg="white", bg='Black')
label3.grid(row=7)
entry2 = Entry(root, font=('Arial', 15, 'bold'), fg='black', justify=RIGHT, textvariable=perimeter_variable,
               state='disabled')
entry2.grid(row=6)
entry3 = Entry(root, font=('Arial', 15, 'bold'), fg='black', justify=RIGHT, textvariable=area_variable,
               state='disabled')
entry3.grid(row=8)
btn = Button(root, font=('Arial', 15, 'bold'), text='Calculate', bd=10, command=calculate)
btn.grid(row=4)

Я создал базовый графический интерфейс для расчета площади и метода. Я использую его в другом графическом интерфейсе (он работает отлично), я получаю к нему доступ с помощью кнопки, поэтому я создал функцию. Это не дает никакой ошибки, но это также не выполняет результат. Я больше, так что я не очень знакомый Ой!

1 Ответ

0 голосов
/ 05 марта 2019

Нет необходимости определять две вложенные функции. Определите одну функцию следующим образом:

def calculate():

    side = entry_variable.get()
    area = side * side
    area_variable.set(area)
    perimeter = 4 * side
    perimeter_variable.set(perimeter)
...