1 回答
TA贡献1836条经验 获得超13个赞
这是我解决这个问题的方法,可能还有其他方法。
def value():
global a
a = entry_1.get()
def times():
try:
b = a.index(',')
c = a[b + 2:] + '/' + a[:b]
if c in pytz.all_timezones:
home = pytz.timezone(c)
local_time = datetime.now(home)
current_time = local_time.strftime('%H:%M:%S')
place_lbl = Label(root, text=a, bg='grey', width=15, font=('bold', 25))
place_lbl.place(relx=0.33, rely=0.4)
time_lbl = Label(root, text=current_time, bg='grey', font=('bold', 30))
time_lbl.place(relx=0.41, rely=0.5)
time_lbl.after(1000,times)
else:
messagebox.showerror('Error',"Cannot find '{}'. Please enter in form city, continent (e.g. London, Europe).".format(a))
except:
messagebox.showerror('Error',"Cannot find '{}'. Please enter in form city, continent (e.g. London, Europe).".format(a))
确保将按钮更改为:
search_btn = Button(root,text='Search',command=lambda:[value(),times(),entry_1.delete(0, END)])
问题是您使用的after(),但一旦代码运行,输入框为空,然后您将使用框内删除的值。因此,我最初将值传递给另一个函数,以便将其存储在那里。
通过按钮的命令,我调用三个函数,第一个函数value()将具有条目小部件中的值,然后下times()一个是删除条目小部件。如果您将删除包含在其中,times()那么它将导致该条目每秒被删除。
当您也想搜索更多城市时,这很有效。
- 1 回答
- 0 关注
- 116 浏览
添加回答
举报