首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >销毁现有标签Tkinter

销毁现有标签Tkinter
EN

Stack Overflow用户
提问于 2015-09-14 10:12:52
回答 2查看 656关注 0票数 0

我试图在python中使用Tkinter使用UI运行多个计算,在这里我必须显示所有计算的所有输出。问题是,第一次计算的输出很好,但是进一步计算的输出似乎是在默认值之外计算的。我知道为了输出第二个计算,我应该销毁第一个标签,但是当我试图销毁我的第一个标签时,我不能。我尝试过的代码如下:

代码语言:javascript
复制
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。我该怎么办??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-14 10:37:13

你有几个错误:

代码语言:javascript
复制
def funcname()
GMT = GMT_user.get()

在第一行中缺少一个冒号,在第二个->上缺少缩进

代码语言:javascript
复制
def funcname():
    GMT = GMT_user.get() 

这里的变量名错误( pack不返回任何变量):

代码语言:javascript
复制
Entry_Long = Entry(nUI_pgm, textvariable = long_deg_user).pack()

必须:

代码语言:javascript
复制
Entry(nGui_pgm, textvariable = lat_deg_user).pack()

“我知道为了输出第二个计算,我应该销毁第一个标签”:不,configure方法是一个好方法。因此,删除:

代码语言:javascript
复制
Eqntime_label.destroy()
票数 1
EN

Stack Overflow用户

发布于 2015-09-14 14:56:36

一个使用set而不是configure的版本,它更符合您代码中的其他变量定义。

此外,您还必须缩进与函数对应的所有行。

其余的,已经在其他答案中解释过了。

代码语言:javascript
复制
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()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32562253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档