日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

tkinter動態顯示時間的兩種實現方法_python

作者:碼上有錢啊 ? 更新時間: 2023-03-22 編程語言

問題描述

有些小伙伴在使用python做GUI界面的時候可能想添加這么一個小功能,就是在界面的某個角落動態的顯示當前的時間,本文將介紹具體方法。

方式一(使用組件的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方法的作用是每隔一段時間調用函數一次,需要添加兩個參數,第一個參數為時間間隔,第二個參數為所調用的函數,上述代碼中的1000指的是1000毫秒,也就是一秒鐘調用一次get_time函數。

方式二(新建線程)

這個方法需要用到threading模塊,作用是創建一個新的線程。

代碼如下:

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)這句代碼的作用呢是設置守護線程,當主線程結束時更新時間的線程也結束,如果不設置的話關閉界面則會報錯,因為你還有一個線程在執行。

總結

原文鏈接:https://blog.csdn.net/daitianjun/article/details/126335394

欄目分類
最近更新