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 關注
- 163 瀏覽
添加回答
舉報