網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
tkinter動(dòng)態(tài)顯示時(shí)間的兩種實(shí)現(xiàn)方法_python
作者:碼上有錢(qián)啊 ? 更新時(shí)間: 2023-03-22 編程語(yǔ)言問(wèn)題描述
有些小伙伴在使用python做GUI界面的時(shí)候可能想添加這么一個(gè)小功能,就是在界面的某個(gè)角落動(dòng)態(tài)的顯示當(dāng)前的時(shí)間,本文將介紹具體方法。
方式一(使用組件的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方法的作用是每隔一段時(shí)間調(diào)用函數(shù)一次,需要添加兩個(gè)參數(shù),第一個(gè)參數(shù)為時(shí)間間隔,第二個(gè)參數(shù)為所調(diào)用的函數(shù),上述代碼中的1000指的是1000毫秒,也就是一秒鐘調(diào)用一次get_time函數(shù)。
方式二(新建線程)
這個(gè)方法需要用到threading模塊,作用是創(chuàng)建一個(gè)新的線程。
代碼如下:
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為新開(kāi)辟的一個(gè)線程,thread.setDaemon(True)這句代碼的作用呢是設(shè)置守護(hù)線程,當(dāng)主線程結(jié)束時(shí)更新時(shí)間的線程也結(jié)束,如果不設(shè)置的話關(guān)閉界面則會(huì)報(bào)錯(cuò),因?yàn)槟氵€有一個(gè)線程在執(zhí)行。
總結(jié)
原文鏈接:https://blog.csdn.net/daitianjun/article/details/126335394
相關(guān)推薦
- 2022-11-09 go+redis實(shí)現(xiàn)消息隊(duì)列發(fā)布與訂閱的詳細(xì)過(guò)程_Golang
- 2022-04-11 一文帶你了解什么是瀏覽器緩存,DNS,CDN及域名解析類型_網(wǎng)站運(yùn)營(yíng)
- 2021-12-15 Android中Intent組件的入門(mén)學(xué)習(xí)心得_Android
- 2022-12-11 python模塊itsdangerous簡(jiǎn)單介紹_python
- 2022-12-07 C++AVL樹(shù)4種旋轉(zhuǎn)詳講(左單旋、右單旋、左右雙旋、右左雙旋)_C 語(yǔ)言
- 2022-11-05 React+CSS?實(shí)現(xiàn)繪制豎狀柱狀圖_React
- 2022-04-04 微信小程序:獲取用戶手機(jī)號(hào)碼的過(guò)程
- 2022-07-09 kettle訪問(wèn)webservices接口讀取數(shù)據(jù)插入數(shù)據(jù)庫(kù)
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支