最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python Tkinter實(shí)時(shí)顯示數(shù)據(jù)功能實(shí)現(xiàn)

 更新時(shí)間:2023年07月05日 15:13:35   作者:檬檸wan  
這篇文章主要介紹了python Tkinter實(shí)時(shí)顯示數(shù)據(jù)功能實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

tkinter

tkinter 是 Python 的標(biāo)準(zhǔn) GUI 庫(kù)。Python 使用 tkinter 可以快速的創(chuàng)建 GUI 應(yīng)用程序。由于 tkinter 是內(nèi)置到 python 的安裝包中、只要安裝好 Python 之后就能 import tkinter 庫(kù)、而且 IDLE 也是用 tkinter 編寫而成、對(duì)于簡(jiǎn)單的圖形界面 tkinter 還是能應(yīng)付自如。

python Tkinter實(shí)時(shí)顯示數(shù)據(jù)

前言

使用Tkinter庫(kù)編寫數(shù)據(jù)展示界面。創(chuàng)建一個(gè)窗口,實(shí)時(shí)顯示溫度、濕度和當(dāng)前時(shí)間的標(biāo)簽,并通過多線程從傳感器獲取模擬溫濕度數(shù)據(jù)并更新界面具體功能如下:

  • 使用tkinter庫(kù)創(chuàng)建窗口和標(biāo)簽。
  • 使用threading庫(kù)創(chuàng)建兩個(gè)線程,一個(gè)用于獲取溫濕度數(shù)據(jù),另一個(gè)用于獲取當(dāng)前時(shí)間。
  • get_temperature_and_humidity方法是在一個(gè)無限循環(huán)中隨機(jī)生成模擬溫濕度數(shù)據(jù),并將其更新到對(duì)應(yīng)的標(biāo)簽上。每次更新后,通過調(diào)用self.root.update()刷新窗口,使界面能夠?qū)崟r(shí)展示最新的溫濕度數(shù)據(jù)。
  • get_time方法用于獲取當(dāng)前時(shí)間,并將其更新到對(duì)應(yīng)的標(biāo)簽上。使用self.get_real_time.set(time.strftime(“%H:%M:%S”))設(shè)置當(dāng)前時(shí)間,并通過遞歸調(diào)用self.root.after(1000, self.get_time)每隔1秒更新一次時(shí)間標(biāo)簽。
  • 在if name == ‘main’:下創(chuàng)建Data_Display對(duì)象并運(yùn)行主事件循環(huán)run.root.mainloop(),使窗口一直運(yùn)行直到被關(guān)閉。

數(shù)據(jù)獲取

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('數(shù)據(jù)展示')
        self.root.geometry("260x100+1100+150")
        self.font = font.Font(size=15)
        self.interface()
    def interface(self):
        """"溫度、濕度、時(shí)間標(biāo)簽"""
        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)
        # 啟用線程獲取溫濕度數(shù)據(jù)
        T1 = threading.Thread(name='get_temperature_and_humidity',
                              target=self.get_temperature_and_humidity,
                              daemon=True)
        T1.start()
        # 啟用線獲取當(dāng)前時(shí)間
        T2 = threading.Thread(name='get_time',
                              target=self.get_time,
                              daemon=True)
        T2.start()
    def get_temperature_and_humidity(self):
        """獲取溫濕度數(shù)據(jù),并隔一段時(shí)間更新"""
        while True:
            # 隨機(jī)獲取溫度和濕度數(shù)據(jù)
            self.get_temperature.set(random.randint(10, 30))
            self.get_humidity.set(random.randint(10, 100))
            # 獲取時(shí)間間隔3秒
            time.sleep(3)
            # self.root.update() 來刷新窗口,使得界面能夠?qū)崟r(shí)展示最新的溫濕度數(shù)據(jù)
            self.root.update()
    def get_time(self):
        """獲取當(dāng)前時(shí)間"""
        self.get_real_time.set(time.strftime("%H:%M:%S"))
        # root.after(1000, self.get_time) 是Tkinter中的定時(shí)器方法,用于在指定的時(shí)間(毫秒)后執(zhí)行指定的函數(shù)
        # 每隔1s調(diào)用函數(shù) self.get_time 自身獲取時(shí)間
        self.root.after(1000, self.get_time)
if __name__ == '__main__':
    run = Data_Display()
    run.root.mainloop()

請(qǐng)?zhí)砑訄D片描述

到此這篇關(guān)于python Tkinter實(shí)時(shí)顯示數(shù)據(jù)的文章就介紹到這了,更多相關(guān)python Tkinter顯示數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

尼木县| 电白县| 宁武县| 罗定市| 屏山县| 广汉市| 临邑县| 庆云县| 阿荣旗| 柳河县| 平遥县| 衡南县| 南澳县| 建平县| 北川| 星子县| 阿拉尔市| 揭西县| 台中市| 平凉市| 达日县| 丰城市| 灵璧县| 瑞昌市| 临漳县| 郸城县| 太湖县| 凤凰县| 页游| 金塔县| 剑川县| 潼南县| 鄂托克前旗| 梓潼县| 北票市| 夏邑县| 深水埗区| 阿拉善右旗| 宕昌县| 扬中市| 威宁|