Как вы делаете расчеты, используя различные переменные в окне верхнего уровня? - PullRequest
0 голосов
/ 24 октября 2019

Я создаю приложение калькулятора для своей компании, которое будет использоваться для расчета определенных параметров. Поскольку существуют различные параметры с соответствующими формулами, я решил создать окна верхнего уровня для каждого параметра - все они связаны с соответствующими кнопками. Но я не могу заставить функции работать в окнах верхнего уровня.

Я использовал def calculate(): безрезультатно

Я ожидаю, что это будет работать, так как оно работает в обычном окне, но не удается в окне верхнего уровня.

def open():  
    ldl_window = Toplevel(root)
    ldl_window.geometry('500x500')

def calculate():

    tc = eval(totalChol.get())
    hdl=eval (hdLipo.get())
    tg=eval (trig.get ()) 
    ldl =tc-((hdl/2)+tg)
    output_label.configure(text = 'LDL: {:.1f}'.format(ldl))
    totalChol.delete(0,END)
    hdLipo.delete(0,END)
    trig.delete(0,END)

    output_label = Label(font=('Verdana', 16), bg='grey',fg='white')
    tc_label = Label(ldl_window,text='TC',font=('Verdana', 15))
    tc_label.grid(row=0, column=0)
    hdl_label = Label(ldl_window,text='HDL',font=('Verdana', 15))
    hdl_label.grid(row=1, column=0)
    tg_label = Label(ldl_window,text='TG',font=('Verdana', 15))
    tg_label.grid(row=2, column=0)

    totalChol = Entry(ldl_window,font=('Verdana', 15), width=4)
    totalChol.grid(row=0, column=1)
    hdLipo= Entry(ldl_window,font=('Verdana', 15), width=4)
    hdLipo.grid(row=1,column=1)
    trig= Entry(ldl_window,font=('Verdana', 15), width=4)
    trig.grid (row=2,column=1)

    calc_button = Button(ldl_window,text='CALC', font= 
    ('CALIBRI',15),command=calculate,bg='blue',fg='white')
    calc_button.grid(row=3, column=0)

    output_label.grid(row=3, column=1)

    btn = Button(root, text = "Calculate LDL", command = open, 
    bg='blue',fg='white',font=('CALIBRI', 12))  
    btn.grid(row=3, column=0)
...