class ExcelApp: def __init__(self, master): self.master = master master.title("CQ SMT BL 監控平臺-003無紙化點檢系統") master.state('zoomed') # 窗口最大化 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(13, 20) # 结束时间:19:00 if start_time <= current_time <= end_time: self.combobox5.current(0) else: self.combobox5.current(1) # 每30分钟调用一次check_time函数 self.master(20, check_time) # 初始调用一次check_time函数 check_time()這個報這個錯誤TypeError: 'Tk' object is not callable怎麽修改
时间: 2024-04-13 18:30:10 浏览: 173
Export-dan-Import-Ke-Excel.rar_delphi excel
这个错误是因为你在`self.master(20, check_time)`这行中尝试将`self.master`作为可调用的函数来调用,但是`self.master`是Tk对象,不可调用。
如果你想使用`after`方法来定时调用`check_time`函数,你应该将`after`方法应用于Tk对象,而不是调用它。请修改这一行代码为`self.master.after(1200000, check_time)`。
以下是修改后的代码:
```python
class ExcelApp:
def __init__(self, master):
self.master = master
master.title("CQ SMT BL 監控平臺-003無紙化點檢系統")
master.state('zoomed') # 窗口最大化
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(13, 20) # 结束时间:19:00
if start_time <= current_time <= end_time:
self.combobox5.current(0)
else:
self.combobox5.current(1)
# 每20分钟调用一次check_time函数
self.master.after(1200000, check_time)
# 初始调用一次check_time函数
check_time()
```
在这个修改中,我们使用`self.master.after(1200000, check_time)`来定时调用`check_time`函数,间隔为20分钟(20分钟 = 1200000毫秒)。
希望这次修改解决了你的问题。如果还有其他问题,请随时提问。
阅读全文