@che4ry

Считывание из окон считывания не получатся что делать?

как сделать так чтобы они считывались и проходили уравнение
from tkinter import *
from tkinter import messagebox
#окна
roo = Tk()
roo.title("инструкция")
roo.geometry("300x250")

root = Tk()
root.title("calkylator")
root.geometry("300x250")
#функция счета
def chet():
    u = 66 + (13 * y) + (5 * t)-(6 * i)
    messagebox.showinfo("GUI Python", u.get())




#кнопка
btn = Button( text="подсчитать", background="#555", foreground="#ccc",
             padx="20", pady="8", font="16",command=chet)
btn.pack()
#настройка текст
roo.poetry = "в 1 строку вписать ваш вес,\n во 2 стороку вписать рост,\n  в 3 строки впишите возрастл."
label2 = Label(roo, text=roo.poetry, justify=LEFT)
label2.place(relx=.2, rely=.3)
#окна  считывания
calc_ent = Entry(root, width=33) #"вес"
calc_ent.grid(row=0, column=0, columnspan=25)
y = int(input(calc_ent))

c_ent = Entry(root, width=33) #"рост"
c_ent.grid(row=3, column=3, columnspan=15)
t = int(input(c_ent))

celc_ent = Entry(root, width=33) #возрас
celc_ent.grid(row=5, column=5, columnspan=10)
i = int(input(str(celc_ent)))

root.mainloop()
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
shabelski89
@shabelski89
engineer
Вы нагородили сложный огород, советую пройти минимальный бесплатный курс.

А вот рабочий код, примерно того что Вы хотели.
В качестве домашнего задания придумайте логику обработки возраста.

from tkinter import *


def check_bmi(h, w, a):
    bmi = round(w / (h / 100) / (h / 100), 2)
    if bmi < 16.5:
        result = 'очень плохо'
    elif 16.5 <= bmi < 18.5:
        result = 'недостаточная масса тела'
    elif 18.5 <= bmi < 25:
        result = 'нормальный вес'
    elif 25 <= bmi < 30:
        result = 'избыточная масса тела'
    else:
        result = 'Ожирение!'
    return result


def bmi_index():
    if not entry1.get() or not entry2.get() or not entry3.get():
        label4.configure(text='заполните все поля')
        label4.pack()
    else:
        height = float(entry1.get())
        weight = float(entry2.get())
        age = int(entry3.get())
        bmi = check_bmi(height, weight, age)
        entry1.delete(0, END)
        entry2.delete(0, END)
        entry3.delete(0, END)

        label4.configure(text=bmi)
        label4.pack()


if __name__ == '__main__':
    root = Tk()
    f1 = Frame()
    f1.pack(side=LEFT, padx=10)
    entry1 = Entry(f1)
    label1 = Label(f1, text="рост в см", justify=LEFT)
    entry2 = Entry(f1)
    label2 = Label(f1, text="вес в кг", justify=LEFT)
    entry3 = Entry(f1)
    label3 = Label(f1, text="возраст полных лет", justify=LEFT)

    label1.pack(fill=X)
    entry1.pack(fill=X)
    label2.pack(fill=X)
    entry2.pack(fill=X)
    label3.pack(fill=X)
    entry3.pack(fill=X)

    f2 = Frame()
    f2.pack(side=LEFT, padx=10)
    badd = Button(f2, text="подсчитать", background="#555", foreground="#ccc",
                  padx="20", pady="8", font="16", command=bmi_index)
    badd.pack(fill=X)
    label4 = Label(f2, text="", justify=LEFT)
    label4.pack(fill=X)
    root.mainloop()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 130 000 ₽
deeplay Новосибирск
от 130 000 ₽
Enjoy PRO Санкт-Петербург
от 140 000 до 180 000 ₽