You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.5 KiB
69 lines
2.5 KiB
6 months ago
|
import tkinter as tk
|
||
|
from tkinter import ttk
|
||
|
import random
|
||
|
import time
|
||
|
|
||
|
# 全局变量
|
||
|
comfortable_temperature_range = (20, 24)
|
||
|
comfortable_humidity_range = (40, 60)
|
||
|
current_temperature = 0
|
||
|
current_humidity = 0
|
||
|
line_number = 0
|
||
|
update_interval = 5000 # 每5秒更新一次
|
||
|
root = None
|
||
|
treeview = None
|
||
|
|
||
|
def reset_conditions():
|
||
|
global current_temperature, current_humidity
|
||
|
current_temperature = random.uniform(-12, 42)
|
||
|
current_humidity = random.uniform(0, 100)
|
||
|
|
||
|
def adjust():
|
||
|
global current_temperature, current_humidity
|
||
|
reset_conditions()
|
||
|
if not comfortable_temperature_range[0] <= current_temperature <= comfortable_temperature_range[1]:
|
||
|
current_temperature = random.uniform(*comfortable_temperature_range)
|
||
|
if not comfortable_humidity_range[0] <= current_humidity <= comfortable_humidity_range[1]:
|
||
|
current_humidity = random.uniform(*comfortable_humidity_range)
|
||
|
return current_temperature, current_humidity
|
||
|
|
||
|
def schedule_update():
|
||
|
"""计划下一次更新"""
|
||
|
global line_number
|
||
|
line_number += 1
|
||
|
initial_temp, initial_humidity = current_temperature, current_humidity
|
||
|
adjusted_temp, adjusted_humidity = adjust()
|
||
|
treeview.insert("", tk.END, values=(line_number,
|
||
|
f"{initial_temp:.2f}°C",
|
||
|
f"{initial_humidity:.2f}%",
|
||
|
f"{adjusted_temp:.2f}°C",
|
||
|
f"{adjusted_humidity:.2f}%"))
|
||
|
# 安排下一次更新
|
||
|
root.after(update_interval, schedule_update)
|
||
|
|
||
|
def main():
|
||
|
global root, treeview
|
||
|
root = tk.Tk()
|
||
|
root.title("智能家居系统-空调自动调节系统")
|
||
|
root.geometry("800x600")
|
||
|
|
||
|
treeview = ttk.Treeview(root,
|
||
|
columns=("编号", "初始温度", "初始湿度", "调节后温度", "调节后湿度"),
|
||
|
show="headings")
|
||
|
treeview.heading("编号", text="编号")
|
||
|
treeview.heading("初始温度", text="初始温度")
|
||
|
treeview.heading("初始湿度", text="初始湿度")
|
||
|
treeview.heading("调节后温度", text="调节后温度")
|
||
|
treeview.heading("调节后湿度", text="调节后湿度")
|
||
|
for col in treeview['columns']:
|
||
|
treeview.column(col, width=80, anchor=tk.CENTER)
|
||
|
treeview.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)
|
||
|
|
||
|
root.rowconfigure(0, weight=1)
|
||
|
root.columnconfigure(0, weight=1)
|
||
|
|
||
|
schedule_update() # 安排首次更新
|
||
|
root.mainloop()
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|