Как я могу сделать ярлыки исчезают, когда идентификатор хочет вывести «Ошибка» или в этом случае «вне диапазона» - PullRequest
0 голосов
/ 29 марта 2020

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

    #fuel Calculator v1.0
#this version only calculates fuel for a 737 or a a320
from tkinter import *

top = Tk()
top.title("fuel planner")

def boeing_burn():

    res1=(float(E1.get()))* 2530
    res2=round(res1*2.204,2)

    lal1 = Label(top, text = " kg")
    lal2 = Label(top, text = " lbs")
    lal5 = Label(top, text = "out of range")

    lal1["text"]= str(res1) + "kg"
    lal2["text"]=str(res2)+"lbs"


    if res1 < 20800: 
        lal1.grid(column=0,row=2)
        lal2.grid(column=2,row=2)
        lal5.grid_remove()
    elif res1 > 20800:
        lal1.grid_remove()
        lal2.grid_remove()
        lal5.grid(column=1,row=2)

def a320_burn():


    res1=(float(E1.get()))*2430
    res2=round(res1*2.204,2)

    lal1 = Label(top, text = " kg")
    lal2 = Label(top, text = " lbs")
    lal5 = Label(top, text = "out of range")

    lal1["text"]= str(res1) + "kg"
    lal2["text"]=str(res2)+"lbs"


    if res1 < 20800: 
        lal1.grid(column=0,row=2)
        lal2.grid(column=2,row=2)
        lal5.grid_remove()
    elif res1 > 20800:
        lal1.grid_remove()
        lal2.grid_remove()
        lal5.grid(column=1,row=2)



L1 = Label(top, text="flight time in hours:")
L1.grid(column=0,row=0)
E1 = Entry(top, bd =5, width=20)
E1.grid(column=2,row=0)

B1 = Button(top, text="Boeing 737", command=boeing_burn)
B1.grid(column=0,row=1)

B2 = Button(top, text="Airbus A320", command=a320_burn)
B2.grid(column=3,row=1)




top.mainloop()

1 Ответ

0 голосов
/ 29 марта 2020

Каждый раз, когда вы нажимаете кнопку, вы создаете новые метки. Вместо этого вы должны создать метки вне функции и редактировать их внутри

from tkinter import *

top = Tk()
top.title("fuel planner")

lal1 = Label(top, text = " kg")
lal2 = Label(top, text = " lbs")
lal5 = Label(top, text = "out of range")



def boeing_burn():

    res1=(float(E1.get()))* 2530
    res2=round(res1*2.204,2)

    lal1["text"] = str(res1) + "kg"
    lal2["text"] = str(res2) + "lbs"

    if res1 < 20800:
        lal1.grid(column=0,row=2)
        lal2.grid(column=2,row=2)
        lal5.grid_remove()
    elif res1 > 20800:
        lal1.grid_remove()
        lal2.grid_remove()
        lal5.grid(column=1,row=2)

def a320_burn():


    res1=(float(E1.get()))*2430
    res2=round(res1*2.204,2)

    lal1["text"] = str(res1) + "kg"
    lal2["text"] = str(res2) + "lbs"

    if res1 < 20800:
        lal1.grid(column=0,row=2)
        lal2.grid(column=2,row=2)
        lal5.grid_remove()
    elif res1 > 20800:
        lal1.grid_remove()
        lal2.grid_remove()
        lal5.grid(column=1,row=2)



L1 = Label(top, text="flight time in hours:")
L1.grid(column=0,row=0)
E1 = Entry(top, bd =5, width=20)
E1.grid(column=2,row=0)

B1 = Button(top, text="Boeing 737", command=boeing_burn)
B1.grid(column=0,row=1)

B2 = Button(top, text="Airbus A320", command=a320_burn)
B2.grid(column=3,row=1)
top.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...