values = ["D", "N"] self.label5 = tk.Label(input_frame, text="班別") self.label5.pack(side=tk.LEFT, padx=0.02, pady=0.02) self.combobox5 = tk.ttk.Combobox(input_frame, width=10, values=values, state="readonly") self.combobox5.pack(side=tk.LEFT, padx=0.05, pady=0.05) current_time = datetime.datetime.now().time() start_time = datetime.time(8, 0) # 開始時間:08:00 end_time = datetime.time(19, 0) # 結束時間:19:00 if start_time <= current_time <= end_time: self.combobox5.current(0) else: self.combobox5.current(1)修改這段代碼,每30分鐘判斷一次
时间: 2024-04-14 16:30:10 浏览: 148
ICI_OFDM.rar_802.11a_EKF_INTER CARRIER_ofdm symbol_self cancella
要修改这段代码,使其每30分钟判断一次当前时间,并根据时间设置`combobox5`的选中项,你可以使用`after`方法来定时执行。以下是修改后的代码:
```python
values = ["D", "N"]
self.label5 = tk.Label(input_frame, text="班別")
self.label5.pack(side=tk.LEFT, padx=0.02, pady=0.02)
self.combobox5 = tk.ttk.Combobox(input_frame, width=10, values=values, state="readonly")
self.combobox5.pack(side=tk.LEFT, padx=0.05, pady=0.05)
def check_time():
current_time = datetime.datetime.now().time()
start_time = datetime.time(8, 0) # 开始时间:08:00
end_time = datetime.time(19, 0) # 结束时间:19:00
if start_time <= current_time <= end_time:
self.combobox5.current(0)
else:
self.combobox5.current(1)
# 每30分钟调用一次check_time函数
self.after(1800000, check_time)
# 初始调用一次check_time函数
check_time()
```
在这个修改中,我们定义了一个`check_time`函数来判断当前时间,并根据时间设置`combobox5`的选中项。然后,我们使用`self.after(1800000, check_time)`来定时调用`check_time`函数,间隔为30分钟(30分钟 = 1800000毫秒)。最后,我们在初始化时调用一次`check_time`函数,以确保初始状态下`combobox5`的选中项正确。
希望这个修改满足了你的需求。如果还有其他问题,请随时提问。
阅读全文