def load_excel(self, filename, menu_label, selected_label_text): self.la = menu_label self.workbook = xl.load_workbook(filename) self.sheet_names = sorted(self.workbook.sheetnames) # 按工作表名称从小到大排序 self.selected_label.config(text=selected_label_text) # 更新选中标签文本 # 清空左侧面板 for widget in self.sheet_frame.winfo_children(): widget.destroy() # 添加工作表按钮 for i, sheet_name in enumerate(self.sheet_names): button = tk.Button(self.sheet_frame, text=sheet_name, command=lambda name=sheet_name: self.show_sheet(name)) button.grid(row=i, column=0, sticky="ew", padx=1, pady=1) # 添加一个标记,表示该按钮未被使用 button.used = False # 绑定鼠标进入事件 button.bind("<Enter>", lambda event, button=button: button.configure(bg="lightgray")) # 绑定鼠标离开事件 button.bind("<Leave>", lambda event, button=button: button.configure(bg="SystemButtonFace")) # 绑定按钮的点击事件 button.bind("<Button-1>"def mark_used(button): if not button.used: # 将按钮的标记设置为“已使用” button.used = True # 更改按钮的背景颜色 button.configure(bg="green") # 取消按钮的绑定事件 button.unbind("<Button-1>") # 绑定鼠标离开事件,使按钮的背景颜色保持不变 button.bind("<Leave>", lambda event, button=button: button.configure(bg="green")) for child in button.master.winfo_children(): # 绑定按钮的点击事件 child.bind("<Button-1>", lambda event, button=child: mark_used(button))def save_to_excel(self):# 将文本框中的内容按行写入工作表 for i, line in enumerate(text.split("\n")): if line.strip() != "": sheet.cell(row=last_row + i + 1, column=1, value=line.strip()) # 将下拉输入框中的内容按行写入工作表 保存工作簿 workbook.save(filepath) # 清空log_box,避免数据重复添加 self.textbox.delete('1.0', tk.END) messagebox.showerror("請注意", "上傳完畢請開始下個表單點檢.")將第一個函數中點擊按鈕后改變顔色添加到def save_to_excel(self):函數中的最後,儅def save_to_excel(self):運行完畢后改變按鈕顔色
时间: 2024-02-16 19:03:52 浏览: 105
Read data from the Excel spreadsheet.zip_Spreadsheet::Read_excel
你的问题是如何将第一个函数中点击按钮后改变颜色的功能添加到save_to_excel函数中?
你可以将mark_used函数直接添加到save_to_excel函数中,并在需要的地方调用它。你还需要将按钮的引用传递给mark_used函数,以便它可以将按钮的颜色更改为绿色。
以下是修改后的save_to_excel函数的示例代码:
```
def save_to_excel(self):
# 将文本框中的内容按行写入工作表
for i, line in enumerate(text.split("\n")):
if line.strip() != "":
sheet.cell(row=last_row + i + 1, column=1, value=line.strip())
# 将下拉输入框中的内容按行写入工作表
# 将按钮的标记设置为“已使用”
if not self.button.used:
self.button.used = True
# 更改按钮的背景颜色
self.button.configure(bg="green")
# 取消按钮的绑定事件
self.button.unbind("<Button-1>")
# 绑定鼠标离开事件,使按钮的背景颜色保持不变
self.button.bind("<Leave>", lambda event, button=self.button: button.configure(bg="green"))
# 保存工作簿
workbook.save(filepath)
# 清空log_box,避免数据重复添加
self.textbox.delete('1.0', tk.END)
messagebox.showerror("請注意", "上傳完畢請開始下個表單點檢.")
```
请注意,这里假设在save_to_excel函数中只有一个按钮需要更改颜色,如果有多个按钮需要更改颜色,您需要相应地更改代码。
阅读全文