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)這句代碼的作用呢是設(shè)置守護線程,當主線程結(jié)束時更新時間的線程也結(jié)束,如果不設(shè)置的話關(guān)閉界面則會報錯,因為你還有一個線程在執(zhí)行。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
pytorch獲取模型某一層參數(shù)名及參數(shù)值方式
今天小編就為大家分享一篇pytorch獲取模型某一層參數(shù)名及參數(shù)值方式,具有很好的價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12python實現(xiàn)指定字符串補全空格、前面填充0的方法
這篇文章主要介紹了python實現(xiàn)指定字符串補全空格、前面填充0的方法 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-11-11在arcgis使用python腳本進行字段計算時是如何解決中文問題的
這篇文章主要介紹了在arcgis使用python腳本進行字段計算時是如何解決中文問題的,需要的朋友可以參考下2015-10-10Python?seaborn數(shù)據(jù)可視化繪圖(直方圖,密度圖,散點圖)
這篇文章主要介紹了Python?seaborn數(shù)據(jù)可視化繪圖(直方圖,密度圖,散點圖),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-07-07