python Tkinter實時顯示數據功能實現
更新時間:2023年07月05日 15:13:35 作者:檬檸wan
這篇文章主要介紹了python Tkinter實時顯示數據功能實現,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
tkinter
tkinter 是 Python 的標準 GUI 庫。Python 使用 tkinter 可以快速的創(chuàng)建 GUI 應用程序。由于 tkinter 是內置到 python 的安裝包中、只要安裝好 Python 之后就能 import tkinter 庫、而且 IDLE 也是用 tkinter 編寫而成、對于簡單的圖形界面 tkinter 還是能應付自如。
python Tkinter實時顯示數據
前言
使用Tkinter庫編寫數據展示界面。創(chuàng)建一個窗口,實時顯示溫度、濕度和當前時間的標簽,并通過多線程從傳感器獲取模擬溫濕度數據并更新界面具體功能如下:
- 使用tkinter庫創(chuàng)建窗口和標簽。
- 使用threading庫創(chuàng)建兩個線程,一個用于獲取溫濕度數據,另一個用于獲取當前時間。
- get_temperature_and_humidity方法是在一個無限循環(huán)中隨機生成模擬溫濕度數據,并將其更新到對應的標簽上。每次更新后,通過調用self.root.update()刷新窗口,使界面能夠實時展示最新的溫濕度數據。
- get_time方法用于獲取當前時間,并將其更新到對應的標簽上。使用self.get_real_time.set(time.strftime(“%H:%M:%S”))設置當前時間,并通過遞歸調用self.root.after(1000, self.get_time)每隔1秒更新一次時間標簽。
- 在if name == ‘main’:下創(chuàng)建Data_Display對象并運行主事件循環(huán)run.root.mainloop(),使窗口一直運行直到被關閉。
數據獲取
import tkinter as tk import tkinter.font as font import threading import random import time class Data_Display: def __init__(self): self.root = tk.Tk() self.root.title('數據展示') self.root.geometry("260x100+1100+150") self.font = font.Font(size=15) self.interface() def interface(self): """"溫度、濕度、時間標簽""" temperature_label = tk.Label(self.root, text="溫度:", font=self.font) temperature_label.grid(row=0, column=0) self.get_temperature = tk.StringVar() temperature_label_a = tk.Label(self.root, textvariable=self.get_temperature, font=self.font) temperature_label_a.grid(row=0, column=1) temperature_label_b = tk.Label(self.root, text="℃", font=self.font) temperature_label_b.grid(row=0, column=2, padx=5) humidity_label = tk.Label(self.root, text="濕度:", font=self.font) humidity_label.grid(row=0, column=4) self.get_humidity = tk.StringVar() humidity_label_a = tk.Label(self.root, textvariable=self.get_humidity, font=self.font) humidity_label_a.grid(row=0, column=5) humidity_label_b = tk.Label(self.root, text="%", font=self.font) humidity_label_b.grid(row=0, column=6, padx=5) self.get_real_time = tk.StringVar() time_label = tk.Label(self.root, textvariable=self.get_real_time, font=font.Font(size=30)) time_label.grid(row=1, column=0, padx=50, columnspan=50) # 啟用線程獲取溫濕度數據 T1 = threading.Thread(name='get_temperature_and_humidity', target=self.get_temperature_and_humidity, daemon=True) T1.start() # 啟用線獲取當前時間 T2 = threading.Thread(name='get_time', target=self.get_time, daemon=True) T2.start() def get_temperature_and_humidity(self): """獲取溫濕度數據,并隔一段時間更新""" while True: # 隨機獲取溫度和濕度數據 self.get_temperature.set(random.randint(10, 30)) self.get_humidity.set(random.randint(10, 100)) # 獲取時間間隔3秒 time.sleep(3) # self.root.update() 來刷新窗口,使得界面能夠實時展示最新的溫濕度數據 self.root.update() def get_time(self): """獲取當前時間""" self.get_real_time.set(time.strftime("%H:%M:%S")) # root.after(1000, self.get_time) 是Tkinter中的定時器方法,用于在指定的時間(毫秒)后執(zhí)行指定的函數 # 每隔1s調用函數 self.get_time 自身獲取時間 self.root.after(1000, self.get_time) if __name__ == '__main__': run = Data_Display() run.root.mainloop()
到此這篇關于python Tkinter實時顯示數據的文章就介紹到這了,更多相關python Tkinter顯示數據內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!