两天前我启动了Python(2.7.3),我需要在GUI回调函数中使用参数。我一直在这里寻找关于efffbot的任何信息,但我找不出我的情况有什么不对。在
from Tkinter import *
fenetre = Tk()
var_texte = StringVar()
ligne_texte = Entry(fenetre, textvariable=var_texte ,width=30)
def callback(s):
print("we got there with :"+s)
trace_name = var_texte.trace_variable("w",lambda: callback(ligne_texte.get()))
ligne_texte.pack()
fenetre.mainloop()
我试图使用lambda来传递我的param,但是当我在条目中输入文本时,出现了这个错误:
^{pr2}$我在这里找到了一篇文章,建议用lambda x:
代替lambda:
,但是我发现另一个错误是TypeError: <lambda>() takes exactly 1 argument (3 given)
如有任何解释、来源或信息,我们将不胜感激:)
如错误消息所示,
StringVar.trace_variable
由框架用三个参数调用。所以lambda函数应该接受这三个参数:从http://staff.washington.edu/rowen/ROTKFolklore.html这里是参数的描述:
如果您对传递给回调的参数不感兴趣,可以使用:
所谓的“splat”操作符(
*
)的文档可以在here找到。在相关问题 更多 >
编程相关推荐