button.bind("<Button-1>", lambda event, button=button: self.mark_used(button)) TypeError: ExcelApp.mark_used() takes 0 positional arguments but 2 were given \\pcq-smt-ftp01\smt$\CQ SMT-單板測試課\2.生產組\點檢表\點檢歷史資料\PA綫.xlsx文件存在...
时间: 2023-06-30 20:15:45 浏览: 74
根据错误信息,`button.bind("<Button-1>", lambda event, button=button: self.mark_used(button))` 这行代码中,`self.mark_used(button)` 的调用似乎也存在问题,因为 `ExcelApp.mark_used()` 函数定义时没有参数,但是调用时传入了两个参数。
可以尝试将 `self.mark_used(button)` 改为 `self.mark_used()`,并修改 `mark_used()` 的定义,使其能够获取当前焦点的按钮:
```python
def mark_used():
button = root.focus_get()
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"))
```
这样做的话,`mark_used()` 函数就不需要参数了,它会自动获取当前焦点的按钮并对其进行操作,从而避免了参数数量不匹配的问题。
阅读全文