ๅๅใฎ่จไบ๏ผใPythonใraspberry pi ็ฝฎใๆ่จใซๅคฉๆฐไบๅ ฑใ่ฟฝๅ ใใไปถ ใฎ็ถใใงใใ
ๅคฉๆฐไบๅ ฑใฎๆฌกใฏใปใณใตใผใไฝฟใฃใฆใๅฎ้ใฎๆฐๆธฉใจๆธฉๅบฆใๆธฌๅฎใใใใจๆใใพใใใ
ใใฎๅใซๅขใใฆใใๆฉ่ฝใฎๆด็ใงใใ
ๅๅใณใกใณใใงใขใใใคในใใใใ ใใพใใใฎใงใๅๅผทใใฆใๆด็ใใฆใฟใพใใใ่ฆใ็ฎใๅฐใๆนไฟฎใใพใใใ
ๅๅผทใซใชใฃใใใจ
- ๆฉ่ฝ๏ผใใญใฐใฉใ ใฝใผใน๏ผใฎๅ้ข
- ่จญๅฎใใกใคใซ
- ใใฉใณใใฎใคใณในใใผใซ
GitHub
็ป้ข้ ็ฝฎ
ใใใชๆใใง้
็ฝฎใใพใใ
่งฃ่ชฌ
clock.py
ๆฌๅฎถใใญใฐใฉใ ใใกใคใซใงใใใใๆฅๆใ่กจ็คบใใๆ่จๆฉ่ฝใ ใใซใชใใพใใใ
ๅ็ฌใงใฎ่ตทๅ python clock.py ใๅฏ่ฝใงใใ
from tkinter import Tk, Canvas, Label
from datetime import datetime
# ๅไธๆ่จใฏใฉใน
class Clock(Canvas):
# ใณใณในใใฉใฏใฟ
def __init__(self, master):
# ่ฆชใฏใฉในใฎใณใณในใใฉใฏใฟ
super().__init__(master, bg="white")
# ๆๅป่กจ็คบ
self.wt1=Label(self, bg="white", font=("DSEG7 Classic", 140, "bold"))
self.wt1.grid(row=0, column=0, ipady=50, sticky="news")
self.wt2=Label(self, bg="white", font=("DSEG7 Classic", 70, "bold"))
self.wt2.grid(row=0, column=1, ipadx=5, sticky="news")
# ๆฅไป่กจ็คบ
self.wd=Label(self, bg="white", font=("", 50, "bold"))
self.wd.grid(row=1, column=0, columnspan=2, sticky="news")
# ่กจ็คบใๆดๆฐ
def update(self):
# ็พๅจๆฅๆใ่กจ็คบ
now=datetime.now()
self.wd.configure(text=now.strftime("%Y/%m/%d (%a.)"))
self.wt1.configure(text=now.strftime("%H:%M"))
self.wt2.configure(text=now.strftime("%S"))
# 1็งๅพใซๅ่กจ็คบ
self.master.after(1000, self.update)
# ๅ็ฌๅฆ็ใฎๅ ดๅ
def main():
# ใกใคใณใฆใฃใณใใฆไฝๆ
root=Tk()
# ใกใคใณใฆใฃใณใใฆใฟใคใใซ
root.title("Clock")
# ใกใคใณใฆใฃใณใใฆใตใคใบ
root.geometry("1024x768")
# ใกใคใณใฆใฃใณใใฆใฎๆๅคงๅ
root.attributes("-zoom", "1")
# ๅธธใซๆๅ้ขใซ่กจ็คบ
root.attributes("-topmost", True)
# ใกใคใณใฆใฃใณใใฆใฎ่ๆฏ่ฒ
root.configure(bg="white")
# Clock ใฏใฉในใฎใคใณในใฟใณในใ็ๆ
clock=Clock(root)
# ็ป้ขใซ้
็ฝฎ
clock.pack(expand=1)
# ๆ่จ่กจ็คบใฎๆดๆฐใ้ๅง๏ผupdate ใกใฝใใๅผใณๅบใ๏ผ
clock.update()
# ใกใคใณใซใผใ
root.mainloop()
# import clock ใซใใๅผใณๅบใใงใชใใใฐๅ็ฌๅฆ็ main() ใๅฎ่ก
if __name__ == "__main__":
main()
ๆๅใจ็งใๅใใฆ้
็ฝฎใๆ้ใฎใใฉใณใใใใธใฟใซๆ่จใฃใฝใใใฎใซๅคใใพใใใ
ๅฎๆๅฝขใฏไธ็ชไธใฎๅ็ใใ่ฆงใใ ใใใ
ใใฉใณใใฎใคใณในใใผใซใฏๅฒใจ็ฐกๅใ
ใใฆใณใญใผใใใใใฉใณใใใกใคใซใ /usr/share/fonts ใใใใซ้
็ฝฎใใใ ใใงใใ
ไปๅใฏ TrueType ใใฉใณใใชใฎใง truetype ใใฃใฌใฏใใช้
ไธใซ็ฝฎใใพใใใ
fc-cache ใงๅๆ ใfc-list ใ grep ๆค็ดขใใฆ็ฎ็ใฎใใฉใณใใ่ช่ญใใใฆใใใฐ OK ใงใใ
ใกใชใฟใซใใขใณใคใณในใใผใซใฏ rm -R ใงใใฃใฌใฏใใชใใจๅ้คใใฆ fc-cache ใงๅๅบฆๅๆ ใใใ ใใ
$ scp -r ~/Downloads/fonts-DSEG_v045 pi@192.168.X.X:/home/pi/python
pi@192.168.X.X's password:
$ ssh pi@192.168.X.X
pi@192.168.X.X's password:
$ sudo cp -r ~/python/fonts-DSEG_v045 /usr/share/fonts/truetype/fonts-DSEG_v045
$ fc-cache
$ fc-list | grep "DSEG7 Classic:style=Bold"
/usr/share/fonts/truetype/fonts-DSEG_v045/DSEG7-Classic/DSEG7Classic-BoldItalic.ttf: DSEG7 Classic:style=Bold Italic
/usr/share/fonts/truetype/fonts-DSEG_v045/DSEG7-Classic/DSEG7Classic-Bold.woff:DSEG7 Classic:style=Bold
/usr/share/fonts/truetype/fonts-DSEG_v045/DSEG7-Classic/DSEG7Classic-BoldItalic.woff: DSEG7 Classic:style=Bold Italic
/usr/share/fonts/truetype/fonts-DSEG_v045/DSEG7-Classic/DSEG7Classic-Bold.ttf: DSEG7 Classic:style=Bold
โใขใณใคใณในใใผใซๆนๆณ
$ sudo rm -R /usr/share/fonts/truetype/fonts-DSEG_v045
$ fc-cache
$ fc-list | grep "DSEG14 Classic:style=Bold"
ใใฉใณใใฏไปฅไธใฎใตใคใใใ้ ๆดใใพใใใ
ๅ่ใชใณใฏ๏ผ7ใปใฐใป14ใปใฐใใฉใณใ ใDSEGใ
weather.py
ๅคฉๆฐไบๅ ฑๆฉ่ฝใ้็ดใใฆใใพใใ
ใใกใใๅ็ฌใงใฎ่ตทๅ python weather.py ใๅฏ่ฝใงใใ
OpenWeatherMap ใฎๆ
ๅ ฑใใฝใผในใณใผใ็ดๆธใใใ่จญๅฎใใกใคใซใซๅคๅบใใใใจ้ขจๅใใจๅผทใใๆฐใใซ่ฟฝๅ ใใพใใใ
ใชใใ้ขจๅใใฎ่กจ็คบๆนๆณใซใคใใฆใฏใใกใใฎใตใคใใๅ่ใซใชใใพใใใ
ๅ่ใชใณใฏ๏ผOpenWeatherMapใใทใงใผใใณใผใใซใใฆๅๅฐใฎๅคฉๆฐใ่กจ็คบ | ใใใใใจITใใญใฐ
โ ใณใกใณใใใใใ ใใพใใ
ใใใใฟใ
ใใใใ weather.py ใฎใใฌใผใ ๅใซใคใใฆใณใกใณใใใใใ ใใพใใใใจใฆใๆด็ทดใใใฆใพใใญใ
ไธ่จใฎใณใผใใฏๅๅฟ่
ๅใใจใใใใจใงใๅฎน่ตฆใใ ใใใ
from tkinter import Tk, Frame, Label
from datetime import datetime
from PIL import Image, ImageTk
import configparser
import json
import math
import os
import requests
import sys
# ใใฎในใฏใชใใใฎ็ตถๅฏพใใน
scr_path = os.path.dirname(os.path.abspath(sys.argv[0]))
# ่จญๅฎใใกใคใซใใๅๅพ๏ผPython 3.X ็จ๏ผ
inifile=configparser.ConfigParser()
inifile.read(scr_path + "/weather.ini", "UTF-8")
# OpenWeatherMap ใฎๆ
ๅ ฑ
KEY = inifile.get("settings", "key")
ZIP = inifile.get("settings", "zip")
URL = inifile.get("settings", "url")
# ๅคฉๆฐไบๅ ฑใฏใฉใน
class Weather(Frame):
# ใณใณในใใฉใฏใฟ
def __init__(self, master):
# ่ฆชใฏใฉในใฎใณใณในใใฉใฏใฟ
super().__init__(master, bd=0, bg="white", relief="flat")
# ๅฐๅ่กจ็คบ๏ผๅทฆๅฏใ๏ผ
self.wp=Label(self, bg="white", fg="gray", font=("", 20, "bold"), anchor="w")
self.wp.grid(row=0, column=0, columnspan=8, padx=20, sticky="news")
# ๅคฉๅใขใคใณใณ๏ผใใฃใฏใทใงใใชใผ๏ผ
self.icon_dict={
"01d":Image.open(scr_path + "/img/01d.png"), "01n":Image.open(scr_path + "/img/01n.png"),
"02d":Image.open(scr_path + "/img/02d.png"), "02n":Image.open(scr_path + "/img/02n.png"),
"03d":Image.open(scr_path + "/img/03.png"), "03n":Image.open(scr_path + "/img/03.png"),
"04d":Image.open(scr_path + "/img/04.png"), "04n":Image.open(scr_path + "/img/04.png"),
"09d":Image.open(scr_path + "/img/09.png"), "09n":Image.open(scr_path + "/img/09.png"),
"10d":Image.open(scr_path + "/img/10.png"), "10n":Image.open(scr_path + "/img/10.png"),
"11d":Image.open(scr_path + "/img/11.png"), "11n":Image.open(scr_path + "/img/11.png"),
"13d":Image.open(scr_path + "/img/13.png"), "13n":Image.open(scr_path + "/img/13.png"),
"50d":Image.open(scr_path + "/img/50.png"), "50n":Image.open(scr_path + "/img/50.png")
}
# ใขใคใณใณใตใคใบใ็ป้ขใตใคใบใซใใฃใใ๏ผ64x64๏ผใใใ
for key, value in self.icon_dict.items():
self.icon_dict[key]=self.icon_dict[key].resize((64, 64), Image.ANTIALIAS)
self.icon_dict[key]=ImageTk.PhotoImage(self.icon_dict[key])
# ๅคฉๆฐไบๅ ฑ๏ผๆ้ๅธฏ๏ผ
self.wwl=[
Label(self, text="0", bg="white", font=("", 30, "bold")),
Label(self, text="0", bg="white", font=("", 30, "bold")),
Label(self, text="0", bg="white", font=("", 30, "bold")),
Label(self, text="0", bg="white", font=("", 30, "bold")),
Label(self, text="0", bg="white", font=("", 30, "bold")),
Label(self, text="0", bg="white", font=("", 30, "bold")),
Label(self, text="0", bg="white", font=("", 30, "bold")),
Label(self, text="0", bg="white", font=("", 30, "bold"))
]
# ๅคฉๆฐไบๅ ฑ๏ผๆ้ๅธฏ๏ผใ้
็ฝฎ
for i in range(len(self.wwl)):
self.wwl[i].grid(row=1, column=i, pady=5, sticky="news")
# ๅคฉๆฐไบๅ ฑ๏ผๅคฉๅ๏ผ
self.wwi=[
Label(self, image=self.icon_dict["01d"], bg="white"),
Label(self, image=self.icon_dict["01d"], bg="white"),
Label(self, image=self.icon_dict["01d"], bg="white"),
Label(self, image=self.icon_dict["01d"], bg="white"),
Label(self, image=self.icon_dict["01d"], bg="white"),
Label(self, image=self.icon_dict["01d"], bg="white"),
Label(self, image=self.icon_dict["01d"], bg="white"),
Label(self, image=self.icon_dict["01d"], bg="white")
]
# ๅคฉๆฐไบๅ ฑ๏ผๅคฉๅ๏ผใ้
็ฝฎ
for i in range(len(self.wwi)):
self.wwi[i].grid(row=2, column=i, pady=5, sticky="news")
# ๅคฉๆฐไบๅ ฑ๏ผๆฐๆธฉ๏ผ
self.wwt=[
Label(self, text="๏ผยฐC", bg="white", font=("", 20)),
Label(self, text="๏ผยฐC", bg="white", font=("", 20)),
Label(self, text="๏ผยฐC", bg="white", font=("", 20)),
Label(self, text="๏ผยฐC", bg="white", font=("", 20)),
Label(self, text="๏ผยฐC", bg="white", font=("", 20)),
Label(self, text="๏ผยฐC", bg="white", font=("", 20)),
Label(self, text="๏ผยฐC", bg="white", font=("", 20)),
Label(self, text="๏ผยฐC", bg="white", font=("", 20))
]
# ๅคฉๆฐไบๅ ฑ๏ผๆฐๆธฉ๏ผใ้
็ฝฎ
for i in range(len(self.wwt)):
self.wwt[i].grid(row=3, column=i, pady=5, sticky="news")
# ๅคฉๆฐไบๅ ฑ๏ผ้ๆฐด้๏ผ
self.wwr=[
Label(self, text="๏ผmm", bg="white", font=("", 20)),
Label(self, text="๏ผmm", bg="white", font=("", 20)),
Label(self, text="๏ผmm", bg="white", font=("", 20)),
Label(self, text="๏ผmm", bg="white", font=("", 20)),
Label(self, text="๏ผmm", bg="white", font=("", 20)),
Label(self, text="๏ผmm", bg="white", font=("", 20)),
Label(self, text="๏ผmm", bg="white", font=("", 20)),
Label(self, text="๏ผmm", bg="white", font=("", 20))
]
# ๅคฉๆฐไบๅ ฑ๏ผ้ๆฐด้๏ผใ้
็ฝฎ
for i in range(len(self.wwr)):
self.wwr[i].grid(row=4, column=i, pady=5, sticky="news")
# ๅคฉๆฐไบๅ ฑ๏ผ้ขจๅใ๏ผ
self.www=[
Label(self, text="๏ผ", bg="white", font=("", 20)),
Label(self, text="๏ผ", bg="white", font=("", 20)),
Label(self, text="๏ผ", bg="white", font=("", 20)),
Label(self, text="๏ผ", bg="white", font=("", 20)),
Label(self, text="๏ผ", bg="white", font=("", 20)),
Label(self, text="๏ผ", bg="white", font=("", 20)),
Label(self, text="๏ผ", bg="white", font=("", 20)),
Label(self, text="๏ผ", bg="white", font=("", 20))
]
# ๅคฉๆฐไบๅ ฑ๏ผ้ขจๅใ๏ผใ้
็ฝฎ
for i in range(len(self.www)):
self.www[i].grid(row=5, column=i, pady=5, sticky="news")
# ใฌใคใขใฆใ
self.rowconfigure(0, weight=1)
self.rowconfigure(1, weight=1)
self.rowconfigure(2, weight=1)
self.rowconfigure(3, weight=1)
self.rowconfigure(4, weight=1)
self.rowconfigure(5, weight=1)
for i in range(len(self.wwl)):
self.columnconfigure(i, weight=1)
# ่กจ็คบใๆดๆฐ
def update(self):
# ่กจ็คบใซใฆใณใฟ
count=0
# URL ใไฝๆใใฆ OpenWeatherMap ใซๅใๅใใใ่กใ
url=URL.format(ZIP, KEY)
response=requests.get(url)
forecastData=json.loads(response.text)
# ็ตๆใๅพใใใชใๅ ดๅใฏใจใฉใผ็ตไบ
if not ("list" in forecastData):
self.wp.configure(text="OpenWeatherMap request error!", fg="red")
return
# ใใใใฐ็จ
print(forecastData)
# ็ตๆใ 3 ๆ้ๅไฝใงๅๅพ
for item in forecastData["list"]:
# ๆ้ๅธฏใ 24 ๆ้่กจ่จใง่กจ็คบ
forecastDatetime = datetime.fromtimestamp(item["dt"])
self.wwl[count].configure(text=forecastDatetime.hour)
# ๆฐๅใใขใคใณใณใง่กจ็คบ
self.wwi[count].configure(image=self.icon_dict[item["weather"][0]["icon"]])
# ๆฐๆธฉใ่กจ็คบ
self.wwt[count].configure(text="{0}ยฐc".format(round(item["main"]["temp"])))
# ้ๆฐด้ใ่กจ็คบ
rainfall = 0
if "rain" in item and "3h" in item["rain"]:
rainfall = item["rain"]["3h"]
self.wwr[count].configure(text="{0}mm".format(math.ceil(rainfall)))
# ้ขจๅใใ่กจ็คบ
windspd=item["wind"]["speed"]
winddeg=item["wind"]["deg"]
# ้ขจใฎๆน่งใๅฒใๅบใ
if winddeg < 22.5:
# ๅๆๅ
winddeg += 360
if winddeg > 337.5 and winddeg < 382.5:
# ๅใฎ้ขจ
self.www[count].configure(text="N, {0}m".format(math.ceil(windspd)))
elif winddeg > 22.5 and winddeg < 67.5:
# ๅๆฑใฎ้ขจ
self.www[count].configure(text="NE, {0}m".format(math.ceil(windspd)))
elif winddeg > 67.5 and winddeg < 112.5:
# ๆฑใฎ้ขจ
self.www[count].configure(text="E, {0}m".format(math.ceil(windspd)))
elif winddeg > 112.5 and winddeg < 157.5:
# ๅๆฑใฎ้ขจ
self.www[count].configure(text="SE, {0}m".format(math.ceil(windspd)))
elif winddeg > 157.5 and winddeg < 202.5:
# ๅใฎ้ขจ
self.www[count].configure(text="S, {0}m".format(math.ceil(windspd)))
elif winddeg > 202.5 and winddeg < 247.5:
# ๅ่ฅฟใฎ้ขจ
self.www[count].configure(text="SW, {0}m".format(math.ceil(windspd)))
elif winddeg > 247.5 and winddeg < 292.5:
# ่ฅฟใฎ้ขจ
self.www[count].configure(text="W, {0}m".format(math.ceil(windspd)))
elif winddeg > 292.5 and winddeg < 337.5:
# ๅ่ฅฟใฎ้ขจ
self.www[count].configure(text="NW, {0}m".format(math.ceil(windspd)))
# ่กจ็คบใซใฆใณใฟใๆดๆฐ
count += 1
# ๅ
จใฆ่กจ็คบใ็ตใใใใซใผใ็ตไบ
if count >= len(self.wwl):
# ๅฐๅๆ
ๅ ฑใ่กจ็คบ
self.wp.configure(text="{0}, {1} (lat:{2}, lon:{3})".format(
forecastData["city"]["country"],
forecastData["city"]["name"],
forecastData["city"]["coord"]["lat"],
forecastData["city"]["coord"]["lon"]), fg="gray")
# 60็งๅพใซๅ่กจ็คบ
self.master.after(60000, self.update)
return
# ๅ็ฌๅฆ็ใฎๅ ดๅ
def main():
# ใกใคใณใฆใฃใณใใฆไฝๆ
root=Tk()
# ใกใคใณใฆใฃใณใใฆใฟใคใใซ
root.title("Weather")
# ใกใคใณใฆใฃใณใใฆใตใคใบ
root.geometry("1024x768")
# ใกใคใณใฆใฃใณใใฆใฎๆๅคงๅ
root.attributes("-zoom", "1")
# ๅธธใซๆๅ้ขใซ่กจ็คบ
root.attributes("-topmost", True)
# ใกใคใณใฆใฃใณใใฆใฎ่ๆฏ่ฒ
root.configure(bg="white")
# Weather ใฏใฉในใฎใคใณในใฟใณในใ็ๆ
weather=Weather(root)
# ็ป้ขไธญๅคฎใซ้
็ฝฎ
weather.pack(expand=1, fill="x")
# ๅคฉๆฐไบๅ ฑใฎๆดๆฐใ้ๅง๏ผupdate ใกใฝใใๅผใณๅบใ๏ผ
weather.update()
# ใกใคใณใซใผใ
root.mainloop()
# import weather ใซใใๅผใณๅบใใงใชใใใฐๅ็ฌๅฆ็ main() ใๅฎ่ก
if __name__ == "__main__":
main()
ใงใ่จญๅฎใใกใคใซใฏใใกใใ
ใใใงใใกใใกใฝใผในใณใผใใๆธใๆใใใซๆธใฟใพใใ
๏ผ่จญๅฎใใกใคใซใใชใใจๅฎ่กๆใจใฉใผใซใชใใพใ๏ผ
[settings]
key = ********************************
zip = 101-0032,JP
url = http://api.openweathermap.org/data/2.5/forecast?zip={0}&units=metric&lang=ja&APPID={1}
main.py
ใใใใใฎๆฉ่ฝใๅฎ่กใใฆใ็ตๆใ็ป้ขใซ่กจ็คบใใใกใคใณใใฌใผใ ใงใใ
ๆ่จใๅคฉๆฐไบๅ ฑใใใฎใใจๅฎ่ฃ
ใใไบๅฎใฎใปใณใตใผๆ
ๅ ฑใ่กจ็คบใใพใใ
from tkinter import *
import tkinter.ttk as ttk
from clock import Clock
from sensor import Sensor
from weather import Weather
# MainFrame ใฏใฉใน
class MainFrame(ttk.Frame):
# ใณใณในใใฉใฏใฟ
def __init__(self, master=None, *args, **kwargs):
# ่ฆชใฏใฉในใฎใณใณในใใฉใฏใฟ
super().__init__(args, **kwargs)
# Clock ใฏใฉในใฎใคใณในใฟใณในใ็ๆใใฆ้
็ฝฎ
self.clock=Clock(self)
self.clock.grid(row=0, column=0, sticky="news")
# Sensor ใฏใฉในใฎใคใณในใฟใณในใ็ๆใใฆ้
็ฝฎ
self.sensor=Sensor(self)
self.sensor.grid(row=0, column=1, sticky="news")
# Weather ใฏใฉในใฎใคใณในใฟใณในใ็ๆใใฆ้
็ฝฎ
self.weather=Weather(self)
self.weather.grid(row=1, column=0, columnspan=2, sticky="news")
# ใฌใคใขใฆใ
self.columnconfigure(1, weight=1)
def update(self):
# ๆ่จ่กจ็คบใฎๆดๆฐใ้ๅง๏ผClock.update ใกใฝใใๅผใณๅบใ๏ผ
self.clock.update()
# ใปใณใตใผ่กจ็คบใฎๆดๆฐใ้ๅง๏ผSensor.update ใกใฝใใๅผใณๅบใ๏ผ
self.sensor.update()
# ๅคฉๆฐไบๅ ฑใฎๆดๆฐใ้ๅง๏ผWeather.update ใกใฝใใๅผใณๅบใ๏ผ
self.weather.update()
# ใกใคใณใฆใฃใณใใฆไฝๆ
root=Tk()
# ใกใคใณใฆใฃใณใใฆใฟใคใใซ
root.title("Main")
# ใกใคใณใฆใฃใณใใฆใตใคใบ
root.geometry("1024x768")
# ใกใคใณใฆใฃใณใใฆใฎๆๅคงๅ
#root.attributes("-zoom", "1")
root.attributes("-fullscreen", "1")
# ๅธธใซๆๅ้ขใซ่กจ็คบ
root.attributes("-topmost", True)
# ใกใคใณใฆใฃใณใใฆใฎ่ๆฏ่ฒ
root.configure(bg="white")
# ใกใคใณใใฌใผใ ใ้
็ฝฎ
app=MainFrame(root)
# ็ป้ขใซ้
็ฝฎ
app.pack(fill="both")
# ้ใใใใฟใณไฝๆ
close=Button(root, text=" X ", font=('', 16, "bold"), relief=FLAT, command=root.destroy)
# ็ป้ขใใชใตใคใบใใใใจใใใใฟใณใฎไฝ็ฝฎใๅณไธใซ็งปๅ
def change_size(event):
close.place(x=root.winfo_width() - 60, y=14)
# ็ป้ขใฎใชใตใคใบใใใคใณใใใ
root.bind('<Configure>', change_size)
# MainFrame.update ใกใฝใใใๅผใณๅบใ
app.update()
# ใกใคใณใซใผใ
root.mainloop()
sensor.py
ๆธฉๅบฆใๆนฟๅบฆใใใจใคใใงใซๅคงๆฐๅงใปใณใตใผใใใฃใใฎใง็ตใฟ่พผใใงใฟใไบๅฎใงใใ
ใจใใใใใฉใใซ่กจ็คบใ ใใใฆใฟใพใใใ
ใใกใใๅ็ฌใงใฎ่ตทๅ python sensor.py ใๅฏ่ฝใงใใ
from tkinter import Tk, Frame, Label
# ใปใณใตใผ่กจ็คบใฏใฉใน
class Sensor(Frame):
# ใณใณในใใฉใฏใฟ
def __init__(self, master):
# ่ฆชใฏใฉในใฎใณใณในใใฉใฏใฟ
super().__init__(master, bg="white")
# ในใใผใต๏ผใปใณใตใผ่กจ็คบไธ้จใฎ้้่ชฟๆด๏ผ
self.wsp=Label(self, bg="white")
self.wsp.grid(row=0, column=0, ipady=84, sticky="news")
# ๆธฉๅบฆ่กจ็คบ
self.wst1=Label(self, text="ๆฐๆธฉ๏ผ", bg="white", font=("", 20, "bold"))
self.wst1.grid(row=1, column=0, pady=5, sticky="news")
self.wst2=Label(self, text="0ยฐc", bg="lightblue", font=("", 30, "bold"))
self.wst2.grid(row=1, column=1, ipadx=5, pady=5, sticky="news")
# ๆนฟๅบฆ่กจ็คบ
self.wsh1=Label(self, text="ๆนฟๅบฆ๏ผ", bg="white", font=("", 20, "bold"))
self.wsh1.grid(row=2, column=0, pady=5, sticky="news")
self.wsh2=Label(self, text="0%", bg="silver", font=("", 30, "bold"))
self.wsh2.grid(row=2, column=1, ipadx=5, pady=5, sticky="news")
# ๆฐๅง่กจ็คบ
self.wsp1=Label(self, text="ๆฐๅง๏ผ1013", bg="white", font=("", 20, "bold"))
self.wsp1.grid(row=3, column=0, columnspan=2, pady=5, sticky="news")
# ่กจ็คบใๆดๆฐ
def update(self):
# 1็งๅพใซๅ่กจ็คบ
self.master.after(1000, self.update)
# ๅ็ฌๅฆ็ใฎๅ ดๅ
def main():
# ใกใคใณใฆใฃใณใใฆไฝๆ
root=Tk()
# ใกใคใณใฆใฃใณใใฆใฟใคใใซ
root.title("Sensor")
# ใกใคใณใฆใฃใณใใฆใตใคใบ
root.geometry("1024x768")
# ใกใคใณใฆใฃใณใใฆใฎๆๅคงๅ
root.attributes("-zoom", "1")
# ๅธธใซๆๅ้ขใซ่กจ็คบ
root.attributes("-topmost", True)
# ใกใคใณใฆใฃใณใใฆใฎ่ๆฏ่ฒ
root.configure(bg="white")
# Sensor ใฏใฉในใฎใคใณในใฟใณในใ็ๆ
sensor=Sensor(root)
# ็ป้ขใซ้
็ฝฎ
sensor.pack(expand=1, fill="y")
# ใปใณใตใผ่กจ็คบใฎๆดๆฐใ้ๅง๏ผupdate ใกใฝใใๅผใณๅบใ๏ผ
sensor.update()
# ใกใคใณใซใผใ
root.mainloop()
# import sensor ใซใใๅผใณๅบใใงใชใใใฐๅ็ฌๅฆ็ main() ใๅฎ่ก
if __name__ == "__main__":
main()


Comments
Let's comment your feelings that are more than good