gpt4 book ai didi

python - Tkinter 错误,将条目对象与函数绑定(bind),给定了 2 个参数,需要 1 个

转载 作者:行者123 更新时间:2023-12-01 05:16:35 27 4
gpt4 key购买 nike

我是 Tkinter 新手。为了学习Tkinter,我关注了this tutorial ,我尝试将它用于我的新小项目。但是,在我创建的输入框中按 Enter 时出现错误。这是我的代码:

# -*- coding: utf-8 -*-
import Tkinter

class PocketDEX(Tkinter.Tk):
def __init__(self, parent):
Tkinter.Tk.__init__(self, parent)
self.parent = parent
self.initialize()

def initialize(self):
self.grid()

self.labelVariable = Tkinter.StringVar()
self.labelVariable.set("Cuvântul căutat este:")
label = Tkinter.Label(self, textvariable = self.labelVariable, anchor="w")
label.grid(column = 0, row = 0)

self.entry = Tkinter.Entry(self)
self.entry.grid(column = 1, row = 0, sticky='EW')
self.entry.bind("<Return>", self.EnterPressed)

def EnterPressed(self):
print "It worked!"


if __name__ == "__main__":
app = PocketDEX(None)
app.title('★ PocketDEX ★')
app.mainloop()

我得到的错误如下:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1470, in __call__
return self.func(*args)
TypeError: EnterPressed() takes exactly 1 argument (2 given)

我不明白为什么给出了 2 个参数,我在 Windows 8.1 Pro 上使用 Python 2.7.6

最佳答案

另一个参数是事件。这个是正常的。该事件具有您可以访问的关联属性。例如:

event.keysym
>>> 'Return'

处理此问题的最简单方法是修改回调方法以接受事件参数:

def EnterPressed(self, event):
print "It worked!"

更多信息:http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm

关于python - Tkinter 错误,将条目对象与函数绑定(bind),给定了 2 个参数,需要 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23066111/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com