Python键绑定:TypeError:不带参数(给定1个)

时间:2017-02-10 21:07:13

标签: python tkinter

我为此问道歉。我今天开始学习python,并且我已经在搜索过了,而似乎就像我的问题可以很简单地解决,但我一直有问题。在我目前的代码中:

master = Tk()

master.wm_title("V3")
w = Label(master, text="Code:")
w.pack()
master.resizable(width=False, height=False)
e = Entry(master, width = 35, justify = CENTER)
master.geometry('{}x{}'.format(240, 235))
e.pack()
e.focus_set()

def decode():
        textField.configure(state="normal")
        textField.delete(1.0,END)
        hint = e.get()
        for i, c in enumerate(hint):
                if i<5:
                    textField.insert(END,cypher1[c])
                if i>=5:
                    textField.insert(END,cypher2[c])
        master.clipboard_clear()
        master.clipboard_append(textField.get("1.0",'end-1c'))
        textField.configure(state="disabled")
        copyLabel.config(text = "Code Copied!")


b = Button(master, text = "Generate and Copy Key", width = 25, height = 2, command = decode)
b.pack()

textField = Text(master, height=3, width=35)
textField.pack()
copyLabel = Label(master, text="")
copyLabel.pack()
master.bind('<Return>', decode)


mainloop()

效果很好! ......除非我尝试击中输入。然后它导致 TypeError: decode() takes no arguments (1 given)  我已经尝试将其更改为

master.bind('<Return>', decode())

尽管它没有抛出错误,但它并没有做任何事情。我怀疑我缺少物体可能会导致问题。

感谢任何帮助,非常感谢。

1 个答案:

答案 0 :(得分:0)

.bind()将event传递给函数:

def decode(event=None): 或者def decode(*_):会吃掉任意数量的论点