2012-09-20 56 views
3

我有一个小型的Python程序,应该通过运行适当的方法来推动向上按钮。但不是这样,它给了我一个令人困惑的错误...令人困惑的类型错误

from tkinter import * 
class App: 
    def __init__(self, master): 
     self.left = 0 
     self.right = 0 
     widget = Label(master, text='Hello bind world') 
     widget.config(bg='red')    
     widget.config(height=5, width=20)     
     widget.pack(expand=YES, fill=BOTH) 
     widget.bind('<Up>',self.incSpeed) 
     widget.focus() 
    def incSpeed(self): 
     print("Test") 

root = Tk() 
app = App(root) 
root.mainloop() 

和错误是:

Exception in Tkinter callback 
Traceback (most recent call last): 
    File "/usr/lib/python3.2/tkinter/__init__.py", line 1402, in __call__ 
    return self.func(*args) 
TypeError: incSpeed() takes exactly 1 positional argument (2 given) 

可能是什么问题?

回答

5

incSpeed方法应该带一个额外的参数;你的只需要self,但它也通过了event argument

更新你的函数签名接受它:

def incSpeed(self, event): 
    print("Test") 
+0

太好了!非常感谢 :)! – user1496623