更够实时更新弹窗的数据
This commit is contained in:
+34
-4
@@ -22,6 +22,9 @@ class disSys(Frame):
|
||||
self.createWidgets()
|
||||
self.root = root
|
||||
self.root.after(2000, self.update_disp)
|
||||
# 启动数据更新定时器
|
||||
self.update_data_job = None
|
||||
self.start_update_data()
|
||||
def createWidgets(self):
|
||||
# 定义每组的颜色
|
||||
self.colors = ["#FFC0CB", "#ADD8E6", "#90EE90", "#FFD700"]
|
||||
@@ -94,6 +97,13 @@ class disSys(Frame):
|
||||
|
||||
self.buttonCurrenStateWin = tk.Button(dispFrame, text="显示电路状态", command=self.show_CurrentState)
|
||||
self.buttonCurrenStateWin.grid(row=0, rowspan=3 , columnspan=2 , column=3,padx=10, pady=1, sticky="nsew")
|
||||
|
||||
# 添加更新按钮
|
||||
# self.buttonCurrenStateWin = tk.Button(dispFrame, text="自动更新", command=self.update_currentState)
|
||||
# self.buttonCurrenStateWin.grid(row=0, rowspan=3 , columnspan=2 , column=5,padx=10, pady=1, sticky="nsew")
|
||||
# update_btn = tk.Button(btn_frame, text="立即更新", font=state_font,
|
||||
# command=self.update_currentState)
|
||||
# update_btn.pack(fill=tk.X, padx=5, pady=5)
|
||||
################################################断路器操作#########################################################
|
||||
# 定义四个字典来存储元素的值
|
||||
self.dict1={'燃料电池断路器':'闭合',
|
||||
@@ -208,8 +218,13 @@ class disSys(Frame):
|
||||
def update_currentState(self):
|
||||
# 更新所有数值显示
|
||||
for struct, name, entry in self.state_entries:
|
||||
# 获取最新值
|
||||
value = str(getattr(struct, name))
|
||||
# 更新entry显示
|
||||
entry.config(state='normal')
|
||||
entry.delete(0, tk.END)
|
||||
entry.insert(0, str(getattr(struct, name)))
|
||||
entry.insert(0, value)
|
||||
entry.config(state='readonly')
|
||||
|
||||
print('电路状态已更新')
|
||||
def _create_scrollable_column(self, parent_frame, title, data_struct, state_font):
|
||||
@@ -233,7 +248,7 @@ class disSys(Frame):
|
||||
# 配置滚动区域
|
||||
def _configure_scrollregion(e):
|
||||
canvas.configure(scrollregion=canvas.bbox("all"))
|
||||
canvas.config(height=min(e.height, 600))
|
||||
canvas.config(height=min(e.height, 800))
|
||||
canvas.yview_moveto(0)
|
||||
canvas.xview_moveto(0)
|
||||
|
||||
@@ -308,7 +323,7 @@ class disSys(Frame):
|
||||
# update_btn.pack(side=tk.LEFT, padx=5)
|
||||
|
||||
# 启动定时更新
|
||||
self.update_interval = 1000 # 5秒
|
||||
self.update_interval = 1000 # 1秒
|
||||
self.schedule_update()
|
||||
|
||||
def on_close_currentState(self):
|
||||
@@ -317,6 +332,21 @@ class disSys(Frame):
|
||||
self.currentStateWin.after_cancel(self.update_job)
|
||||
self.currentStateWin.destroy()
|
||||
|
||||
def start_update_data(self):
|
||||
"""启动数据更新定时器"""
|
||||
self.update_data_job = self.root.after(1000, self._update_data_loop)
|
||||
|
||||
def stop_update_data(self):
|
||||
"""停止数据更新定时器"""
|
||||
if self.update_data_job:
|
||||
self.root.after_cancel(self.update_data_job)
|
||||
self.update_data_job = None
|
||||
|
||||
def _update_data_loop(self):
|
||||
"""定时更新数据"""
|
||||
self.updata_data()
|
||||
self.update_data_job = self.root.after(1000, self._update_data_loop)
|
||||
|
||||
def schedule_update(self):
|
||||
"""安排定时更新"""
|
||||
self.update_currentState()
|
||||
@@ -488,7 +518,7 @@ class disSys(Frame):
|
||||
self.disLVB.emergencyLithiumBatteryGroup1CircuitBreaker = 0x55
|
||||
else:
|
||||
self.disLVB.emergencyLithiumBatteryGroup1CircuitBreaker = 0xAA
|
||||
|
||||
print("更新数据")
|
||||
a = self.disHVB.pack()
|
||||
b = self.disHVBA.pack()
|
||||
c = self.disHVBB.pack()
|
||||
|
||||
Reference in New Issue
Block a user