def load_excel(self, filename): self.workbook = xl.load_workbook(filename) self.sheet_names = self.workbook.sheetnames # 清空左侧面板 for widget in self.panel_left.winfo_children(): widget.destroy() # 添加工作表按钮 for sheet_name in self.sheet_names: button = tk.Button(self.panel_left, text=sheet_name, command=lambda name=sheet_name: self.show_sheet(name)) button.pack(side=tk.TOP, fill=tk.X, padx=5, pady=5)在這段代碼中添加儅用戶點擊生成的按鈕時按鈕就改變顔色,來表示這個按鈕已使用
时间: 2023-12-23 17:06:01 浏览: 28
你可以在循环中为每个创建的按钮设置一个标记,表示该按钮是否已被使用。当用户点击按钮时,你可以将其对应的标记设置为“已使用”,并将其背景颜色更改为另一种颜色,以表示该按钮已被使用。以下是修改后的代码:
```
def load_excel(self, filename):
self.workbook = xl.load_workbook(filename)
self.sheet_names = self.workbook.sheetnames
# 清空左侧面板
for widget in self.panel_left.winfo_children():
widget.destroy()
# 添加工作表按钮
for sheet_name in self.sheet_names:
button = tk.Button(self.panel_left, text=sheet_name, command=lambda name=sheet_name: self.show_sheet(name))
# 添加一个标记,表示该按钮未被使用
button.used = False
button.pack(side=tk.TOP, fill=tk.X, padx=5, pady=5)
def mark_used(button):
# 将按钮的标记设置为“已使用”
button.used = True
# 更改按钮的背景颜色
button.configure(bg="gray")
for child in self.panel_left.winfo_children():
# 绑定按钮的点击事件
child.bind("<Button-1>", lambda event, button=child: mark_used(button))
```
在这个修改后的代码中,我们为每个按钮添加了一个标记`used`,初始值为False,表示该按钮未被使用。然后,我们在循环中为每个按钮绑定了一个点击事件,当用户点击按钮时,调用`mark_used()`函数,将该按钮的标记设置为“已使用”,并将其背景颜色更改为灰色。