2014-09-27 102 views
4

我是新来编程的,学过python语法。卡在我的第一个GUI程序!TypeError:只需要1个参数(给出2个参数)

这里是我的代码:

#User name 

userLabel = Label(self.signView, text="User Name") 
userLabel.grid(sticky = E) 
self.userEntry = Entry(self.signView) 
self.userEntry.grid(row=0, column=1) 

self.labelUserVar = StringVar() 
self.validLabel = Label(self.signView, textvariable=self.labelUserVar, 
         anchor="w", fg="red") 
self.validLabel.grid(row=0, column=2) 
self.userEntry.bind("<Return>", self.CheckUser) 

这里有以下CheckUser()函数:

def CheckUser(self): 
    self.labelUserVar.set("unavailable user name!") 

我得到这个错误。

TypeError: CheckUser() takes exactly 1 argument (2 given) 
+2

只是让你明白(如果你不这样做的话),在错误出现由于需要1个参数(个体经营)的功能,但你给它2,自和它的一个事件,由于绑定到输入键。以为我会解释它,因为我不认为给出的答案很清楚,为什么它修复了错误。干杯! – W1ll1amvl 2014-09-28 19:52:06

回答

9

传递给.bind()takes the event as an argument的功能,它会在无论你是否需要它传递。

变化的函数定义

def CheckUser(self, event): 
    self.labelUserVar.set("unavailable user name!") 
相关问题