tkinter動態(tài)顯示時間的兩種實現(xiàn)方法
問題描述
有些小伙伴在使用python做GUI界面的時候可能想添加這么一個小功能,就是在界面的某個角落動態(tài)的顯示當前的時間,本文將介紹具體方法。
方式一(使用組件的after方法)
代碼如下所示:
import time
import tkinter
from tkinter import Label
?
?
def get_time():
? ? time2 = time.strftime('%Y-%m-%d %H:%M:%S')
? ? clock = Label(top, text=time2, font=28)
? ? clock.place(x=15, y=120)
? ? clock.after(1000,get_time)
?
top = tkinter.Tk()
top.geometry('500x300')
get_time()
top.mainloop()after方法的作用是每隔一段時間調(diào)用函數(shù)一次,需要添加兩個參數(shù),第一個參數(shù)為時間間隔,第二個參數(shù)為所調(diào)用的函數(shù),上述代碼中的1000指的是1000毫秒,也就是一秒鐘調(diào)用一次get_time函數(shù)。
方式二(新建線程)
這個方法需要用到threading模塊,作用是創(chuàng)建一個新的線程。
代碼如下:
import time
import tkinter
from tkinter import Label
import threading
?
top = tkinter.Tk()
top.geometry('500x300')
clock = Label(top,text='',font=28)
clock.place(x=15, y=120)
def f():
? ? while True:
? ? ? ? clock.configure(text=time.strftime('%Y-%m-%d %H:%M:%S'))
? ? ? ? time.sleep(1)
thread = threading.Thread(target=f)
thread.setDaemon(True)
thread.start()
top.mainloop()其中thread為新開辟的一個線程,thread.setDaemon(True)這句代碼的作用呢是設置守護線程,當主線程結(jié)束時更新時間的線程也結(jié)束,如果不設置的話關閉界面則會報錯,因為你還有一個線程在執(zhí)行。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python Scrapy實戰(zhàn)之古詩文網(wǎng)的爬取
本文將利用Python中Scrapy框架,實現(xiàn)爬取古詩文網(wǎng)上的詩詞數(shù)據(jù),具體包括詩詞的標題信息。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-05-05
Python報錯:OSError:?[Errno?22]?Invalid?argument解決方案及應用實例
最近跑別人的項目遇到一個這樣的問題一開始以為是沒有用管理員的權(quán)限運行,導致創(chuàng)建不了日志文件后來發(fā)現(xiàn)是和windows的命名規(guī)則沖突了,這篇文章主要給大家介紹了關于Python報錯:OSError:?[Errno?22]?Invalid?argument的解決方案及應用實例,需要的朋友可以參考下2024-07-07
pytorch模型轉(zhuǎn)換為onnx可視化(使用netron)
netron 是一個非常好用的網(wǎng)絡結(jié)構(gòu)可視化工具,但是netron對pytorch模型的支持還不成熟,這篇文章主要介紹了pytorch模型轉(zhuǎn)換為onnx,并使用netron可視化,需要的朋友可以參考下2023-05-05
Python中reset_index()函數(shù)的使用
本文主要介紹了Python中reset_index()函數(shù)的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05

