def load_excel(self, filename, menu_label): self.la = menu_label self.workbook = xl.load_workbook(filename) self.sheet_names = self.workbook.sheetnames # 清空左侧面板 for widget in self.panel_left.winfo_children(): widget.destroy() # 添加工作表按钮 for i, sheet_name in enumerate(self.sheet_names): button = tk.Button(self.panel_left, 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>", lambda event, button=button: mark_used(button)) def mark_used(button): if not button.used: # 将按钮的标记设置为“已使用” button.used = True # 更改按钮的背景颜色 button.configure(bg="green") for child in button.master.winfo_children(): # 绑定按钮的点击事件 child.bind("<Button-1>", lambda event, button=child: mark_used(button))修改這段代碼中點擊按鈕后一直保留改變后的顔色
时间: 2023-12-14 13:02:49 浏览: 55
Read data from the Excel spreadsheet.zip_Spreadsheet::Read_excel
如果您希望在用户点击按钮后,按钮的颜色保持不变,可以通过将按钮的背景颜色设置为固定的颜色来实现。您可以修改 mark_used 函数中的代码,使其如下所示:
```
def mark_used(button):
if not button.used:
# 将按钮的标记设置为“已使用”
button.used = True
# 更改按钮的背景颜色
button.configure(bg="green")
# 取消按钮的绑定事件
button.unbind("<Button-1>")
```
在修改后的 mark_used 函数中,当按钮被点击时,它的背景颜色将被修改为绿色,表示已经被使用。同时,它将取消按钮的点击事件的绑定,以确保按钮的颜色不会因为用户再次点击而改变。
阅读全文