請給出修改后的代碼
时间: 2023-10-08 10:07:42 浏览: 141
抱歉,由于我没有完整的上下文和可运行的代码,所以我无法为你提供完整的修改后的代码。但是,我可以给你一些提示,帮助你完成这个修改需求。
首先,你需要导入 Python 的时间模块和字符串处理函数,以及 Tkinter 的相关模块。然后在 show_sheet 函数中,添加一个判断语句,判断当前表名是否为“產綫-Router机粉塵記錄表”,如果是,则清空文本框。接下来,获取当前时间,并将一天时间拆分为每两小时为一组,可以使用 datetime 模块和字符串处理函数来实现。然后,根据当前时间判断在哪一组时间之内,将这组数据写入文本框中,可以使用 for 循环和 if 语句来实现。最后,在写入数据后,在相应数据后面添加下拉输入框,可以使用 Tkinter 的下拉输入框相关函数来实现。
下面是一些伪代码,供你参考:
```python
# 导入必要的模块和函数
import datetime
import tkinter as tk
from tkinter import ttk
def show_sheet(self, sheet_name):
self.textbox.tag_configure("left", justify="left")
sheet = self.workbook[sheet_name]
rows = sheet.max_row
# 判断表名是否为“產綫-Router机粉塵記錄表”,如果是,则清空文本框
if sheet_name == "產綫-Router机粉塵記錄表":
self.textbox.delete(1.0, tk.END)
# 获取当前时间,并将一天时间拆分为每两小时为一组
now = datetime.datetime.now()
start_time = now.replace(hour=0, minute=0, second=0, microsecond=0)
time_groups = []
for i in range(12):
start = start_time + datetime.timedelta(hours=2*i)
end = start_time + datetime.timedelta(hours=2*i+2)
time_groups.append((start, end))
# 根据当前时间判断在哪一组时间之内,将这组数据写入文本框中
for row in sheet.iter_rows(values_only=True):
for i, cell in enumerate(row):
line = str(cell) + "\t"
if i == 0:
for j, group in enumerate(time_groups):
if group[0] <= now < group[1]:
self.textbox.insert(tk.END, group[0].strftime("%H:%M") + "-" + group[1].strftime("%H:%M") + ":\n", "center")
combobox = tk.ttk.Combobox(self.textbox, values=["OK", "NG", "未開綫", "未使用"])
combobox.pack(side=tk.TOP, padx=10, pady=5)
self.textbox.window_create(tk.END, window=combobox)
break
self.textbox.insert(tk.END, line, "left")
self.textbox.insert(tk.END, "\n")
# 设置居中标签的样式
self.textbox.tag_configure("center", justify="center", font=("Arial", 18, "bold"), foreground="blue")
```
这只是一个示例代码,实际使用时需要根据具体情况进行修改和调整。