Ich bin neu hier in diesem Forum und hoffe ich habe mein anliegen im richtigen Bereich platziert.
Für mein Problem habe ich viel gegoogelt leider hat es mir nichts gebracht. Hoffe Ihr könnt mir weiter helfen
Ich habe folgendes Programm zur Berechnung der Dichtehöhe geschrieben, dies Funktioniert so auch, ist einfach nicht schön und ich möchte es verbessern:
Code: Alles auswählen
import tkinter
root = tkinter.Tk()
root.title("Density altitude calculator")
root.geometry("500x275")
def calculateda():
ad_elev = float(airp_elev.get())
pres = float(QNH.get())
temp = float(OAT.get())
QNE = 1013
isa_st = 15
ad = ((QNE - pres) * 28)
pa = ad_elev + ad
st_pa = round(isa_st - (pa / 1000 * 2),2)
hd = 120 * (temp - st_pa)
da = round(pa + hd)
labelresult = tkinter.Label(root, text = "The density altitude is: %.d ft" % da).grid(row = 7, column = 1, padx = 10, pady = 10)
return
L0 = tkinter.Label(root, text = "Welcome to the density altutude calculator!", fg = "red").grid(row = 0, column = 1, sticky = "W", padx = 10, pady = 10)
L1 = tkinter.Label(root, text = "Airport elevation [ft]").grid(row = 1, column = 0, sticky = "W", padx = 10, pady = 10)
L2 = tkinter.Label(root, text = "QNH [hPa]").grid(row = 2, column = 0, sticky = "W", padx = 10, pady = 10)
L3 = tkinter.Label(root, text = "Ourside air temperature [°C]").grid(row = 3, column = 0, sticky = "W", padx = 10, pady = 10)
airp_elev = tkinter.StringVar()
QNH = tkinter.StringVar()
OAT = tkinter.StringVar()
E1 = tkinter.Entry(root, textvariable = airp_elev, bd = 5).grid(row = 1, column = 1)
E2 = tkinter.Entry(root, textvariable = QNH, bd = 5).grid(row = 2, column = 1)
E3 = tkinter.Entry(root, textvariable = OAT, bd = 5).grid(row = 3, column = 1)
b1 = tkinter.Button(root, text = "Calculate density altitude", command = calculateda).grid(row = 4, column = 1, padx = 10, pady = 10)
root.bind("<Return>", calculateda)
root.mainloop()
Vorher:
Code: Alles auswählen
L0 = tkinter.Label(root, text = "Welcome to the density altutude calculator!", fg = "red").grid(row = 0, column = 1, sticky = "W", padx = 10, pady = 10)
L1 = tkinter.Label(root, text = "Airport elevation [ft]").grid(row = 1, column = 0, sticky = "W", padx = 10, pady = 10)
L2 = tkinter.Label(root, text = "QNH [hPa]").grid(row = 2, column = 0, sticky = "W", padx = 10, pady = 10)
L3 = tkinter.Label(root, text = "Ourside air temperature [°C]").grid(row = 3, column = 0, sticky = "W", padx = 10, pady = 10)
Code: Alles auswählen
labels = {"Airport elevation [ft]", "QNH [hPa]", "Outside air temperature [°C]"}
for i in labels:
l = tkinter.Label(root, text = i + 1)
l.grid(row = i + 1, column = 0, sticky = "W", padx = 10, pady = 10)
Vorher:
Code: Alles auswählen
airp_elev = tkinter.StringVar()
QNH = tkinter.StringVar()
OAT = tkinter.StringVar()
E1 = tkinter.Entry(root, textvariable = airp_elev, bd = 5).grid(row = 1, column = 1)
E2 = tkinter.Entry(root, textvariable = QNH, bd = 5).grid(row = 2, column = 1)
E3 = tkinter.Entry(root, textvariable = OAT, bd = 5).grid(row = 3, column = 1)
Code: Alles auswählen
entrys = tkinter.StringVar([airp_elev, QNH, OAT])
for e in entrys:
e = tkinter.Entry(root, textvariable = e + 1, bd = 5)
e.grid(row = e + 1, column = 1)
Code: Alles auswählen
b1 = tkinter.Button(root, text = "Calculate density altitude", command = calculateda).grid(row = 4, column = 1, padx = 10, pady = 10)
b1.bind("<Return>", calculateda)
Falls Ihr sonst noch verbesserungspotential seht wäre ich euch sehr dankbar für eure Hilfe.
Besten Dank schon jetzt für eure Hilfe.
Liebe Grüsse
Kevin