def mark_used(self, button): if not button.used: # 将按钮的标记设置为“已使用” button.used = True # 更改按钮的背景颜色 button.configure(bg="red") # 取消按钮的绑定事件 button.unbind("<Button-1>") # 绑定鼠标离开事件,使按钮的背景颜色保持不变 button.bind("<Leave>", lambda event, button=button: button.configure(bg="red")) # 设置当前按钮为被点击的按钮 self.current_button = button 根據兩個函數,修改在這個函數 def save_to_excel(self):運行完後再次改變對應按鈕的顔色為綠色,
时间: 2024-04-13 19:30:02 浏览: 70
Python RuntimeError: thread.__init__() not called解决方法
要在`save_to_excel`函数运行完毕后再次改变对应按钮的颜色为绿色,你可以在`mark_used`函数中添加一些逻辑。以下是修改后的代码:
```python
def mark_used(self, button):
if not button.used:
# 将按钮的标记设置为“已使用”
button.used = True
# 更改按钮的背景颜色为红色
button.configure(bg="red")
# 取消按钮的绑定事件
button.unbind("<Button-1>")
# 绑定鼠标离开事件,使按钮的背景颜色保持不变为红色
button.bind("<Leave>", lambda event, button=button: button.configure(bg="red"))
# 在save_to_excel函数运行完毕后,再次改变对应按钮的颜色为绿色
self.root.after(5000, lambda: self.change_button_color(button))
def change_button_color(self, button):
# 更改按钮的背景颜色为绿色
button.configure(bg="green")
```
在这个修改中,我们在`mark_used`函数中添加了一个`change_button_color`函数,并使用`self.root.after()`方法来调度该函数,在5秒后运行。在`change_button_color`函数中,我们将按钮的背景颜色改为绿色。
请注意,`self.root.after(5000, lambda: self.change_button_color(button))`中的5000表示5秒的延迟时间,你可以根据需要进行调整。
希望这个修改满足了你的需求。如果还有其他问题,请随时提问。
阅读全文