91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Tkinter中定義和使用自己的定時器

發布時間:2022-01-13 21:23:29 來源:億速云 閱讀:442 作者:iii 欄目:大數據

這篇文章主要介紹“如何在Tkinter中定義和使用自己的定時器”,在日常操作中,相信很多人在如何在Tkinter中定義和使用自己的定時器問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何在Tkinter中定義和使用自己的定時器”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

如何在Tkinter中定義和使用自己的定時器

GUI程序除了要接受用戶操作并提供必要的反饋之外,還經常需要自發地進行一些處理。對于大部分開發語言來講引入一個定時器通常是最簡單的選擇。

下面的代碼就是利用Tkinter控件的after功能實現的一個可復用的Timer類。

class Timer:    def __init__(self, wnd, ms, call):        self.__wnd = wnd        self.__ms = ms        self.__call = call        self.__running = False
   def start(self):        if not self.__running:            self.__wnd.after(0, self.__on_timer)            self.__running = True
   def stop(self):        if self.__running:            self.__running = False
   def is_running(self):        return self.__running
   def __on_timer(self):        if self.__running:            self.__call()            self.__wnd.after(self.__ms, self.__on_timer)

用戶可以在Timer對象初始化時指定窗口對象,定時時間和定時時間到時執行的處理。當用戶調用start方法啟動定時器時,定時器類會以自身的__on_timer方法為參數調用窗口對象的after方法。當定時時間到了之后,這個__on_timer方法會被調用,這時用戶通過初始化方法指定的處理首先會被執行,然后啟動窗口的after方法會被再次調用并在定時時間后觸發__on_timer方法。只要__running為True,__on_timer方法就會被不斷地觸發,直至用戶調用stop方法為止。

我們以一個數字式時鐘為例,介紹這個Timer類的用法:


class DigitalClock:    def __init__(self, canvas, width, height):        self.canvas = canvas        self.width = width        self.height = height        # create font        ftDate = Font(family='Times', size=32)        self.canvas.create_text(width / 2, height / 4,                                text='',                                font=ftDate,                                tag='date')        ftTime = Font(family='Times', size=64)        self.canvas.create_text(width / 2, height / 2,                                text='',                                font=ftTime,                                tag='time')
   def update(self):        time_str = time.strftime('%Y.%m.%d %a', time.localtime())        self.canvas.itemconfigure('date', text=time_str)        time_str = time.strftime('%H:%M:%S', time.localtime())        self.canvas.itemconfigure('time', text=time_str)

DigitalClock在初始化時構建了一大一小兩個Text對象分別用于顯示時間和日期信息。當用戶調用update方法時,DigitalClock獲得系統時間并更新這兩個Text對象的內容。

接下來的主程序就簡單了:

# create the main windowroot = Tk()# create canvascanvas = Canvas(root, height= 400, width= 400)canvas.grid(row=0, column=0)clock = DigitalClock(canvas, 400, 400)timer = Timer(root, 1000, clock.update)timer.start()root.mainloop()timer.stop()

構建時鐘類,定時器類并將時鐘類類的update方法指定為定時器類的處理參數就可以了。

到此,關于“如何在Tkinter中定義和使用自己的定時器”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

始兴县| 溆浦县| 吉水县| 东海县| 谢通门县| 利辛县| 隆林| 大安市| 会东县| 绵竹市| 随州市| 日照市| 富裕县| 巍山| 绥阳县| 莱州市| 贵德县| 海伦市| 津市市| 西贡区| 玛纳斯县| 县级市| 太原市| 徐州市| 抚州市| 威海市| 永年县| 平度市| 舟山市| 酉阳| 镇远县| 分宜县| 长垣县| 浠水县| 自治县| 申扎县| 邹城市| 页游| 宜州市| 婺源县| 昌宁县|