TypeError:edit_undo接受1个位置参数,但给出了2个

问题描述

这是我编辑的代码

from tkinter import *

class UI:
   def __init__(self):
      self.root = Tk()
      self.text= Text(self.root)
      self.text.pack()
      self.text.bind("<Return>",self.entry.edit_undo)
      self.text.mainloop()

UI()

,当我运行它时,它可以正常运行,但是当触发diff.node_root.bind()时,它显示一个错误提示TypeError: edit_undo() takes 1 positional argument but 2 were given。有人可以帮我吗?

解决方法

您传递给bind(事件处理程序)are expected to take one event argument的函数。 edit_undo 不接受任何参数self除外...)。

如果您对实际的event不感兴趣,则可以传递忽略它的函数,例如:

self.text.bind("<Return>",lambda e: self.entry.edit_undo())