我试图在python中使用Tkinter使用UI运行多个计算,在这里我必须显示所有计算的所有输出。问题是,第一次计算的输出很好,但是进一步计算的输出似乎是在默认值之外计算的。我知道为了输出第二个计算,我应该销毁第一个标签,但是当我试图销毁我的第一个标签时,我不能。我尝试过的代码如下:
from tkinter import *
def funcname():
#My calculations
GMT = GMT_user.get()
lat = lat_deg_user.get()
E = GMT * 365
Eqntime_label.configure(text=E)
Elevation = E/lat
Elevation_label.configure(text=Elevation)
nUI_pgm = Tk()
GMT_user = DoubleVar()
lat_deg_user = DoubleVar()
nlabel_time = Label(text = "Enter time in accordance to GMT in decimal").pack()
nEntry_time = Entry(nUI_pgm, textvariable = GMT_user).pack()
nlabel_Long = Label(text = "Enter Longitude in Decimal Degrees").pack()
nEntry_Long = Entry(nUI_pgm, textvariable = lat_deg_user).pack()
nbutton = Button(nUI_pgm, text = "Calculate", command = funcname).pack()
#Displaying results
nlabel_E = Label (text = "The Equation of Time is").pack()
Eqntime_label = Label(nUI_pgm, text="")
Eqntime_label.pack()
#when i try
Eqntime_label.destroy() # this doesn't work
nlabel_Elevation = Label(text = "The Elevation of the sun is").pack()
Elevation_label = Label(nUI_pgm, text="")
Elevation_label.pack()
nUI_pgm.mainloop() 在这里,我必须在显示结果之后销毁Eqntime_label,以便输出Elevation_label。我该怎么办??
发布于 2015-09-14 10:37:13
你有几个错误:
def funcname()
GMT = GMT_user.get()在第一行中缺少一个冒号,在第二个->上缺少缩进
def funcname():
GMT = GMT_user.get() 这里的变量名错误( pack不返回任何变量):
Entry_Long = Entry(nUI_pgm, textvariable = long_deg_user).pack()必须:
Entry(nGui_pgm, textvariable = lat_deg_user).pack()“我知道为了输出第二个计算,我应该销毁第一个标签”:不,configure方法是一个好方法。因此,删除:
Eqntime_label.destroy()发布于 2015-09-14 14:56:36
一个使用set而不是configure的版本,它更符合您代码中的其他变量定义。
此外,您还必须缩进与函数对应的所有行。
其余的,已经在其他答案中解释过了。
from tkinter import *
def funcname():
#My calculations
GMT = GMT_user.get()
lat = lat_deg_user.get()
E = GMT * 365
Elevation = E/lat
etime.set(E)
elevation.set(Elevation)
root = Tk()
# Getting user input
GMT_user = DoubleVar()
lat_deg_user = DoubleVar()
Label(root, text="Enter time in accordance to GMT in decimal").pack()
nEntry_time = Entry(root, textvariable=GMT_user).pack()
Label(root, text="Enter Latitude in Decimal Degrees").pack()
nEntry_Long = Entry(root, textvariable=lat_deg_user).pack()
nbutton = Button(root, text="Calculate", command=funcname).pack()
# Displaying results
etime = StringVar()
elevation = StringVar()
Label(text="The Equation of Time is").pack()
Eqntime_label = Label(root, textvariable=etime)
Eqntime_label.pack()
Label(text="The Elevation of the sun is").pack()
Elevation_label = Label(root, textvariable=elevation)
Elevation_label.pack()
root.mainloop()https://stackoverflow.com/questions/32562253
复制相似问题