我是python新手,尝试创建两个输入小部件,以便在用户输入输入框后立即对数据进行评估。如何将字符串var
传递到函数回调中,以便它准确返回已更改的输入框。现在回调函数只返回第一个输入框(entry1
)
这是我的密码:
import tkinter
from tkinter import StringVar
main_wd = tkinter.Tk()
my_var1 = StringVar()
my_var2 = StringVar()
def my_callback(var):
print("Traced variables {}".format(var.get())
my_var1.trace('write', my_callback(my_var1))
my_var2.trace('write', my_callback(my_var2))
entry1 = tkinter.Entry(main_wd, textvariable = my_var1).pack(padx = 5, pady = 5)
entry2 = tkinter.Entry(main_wd, textvariable = my_var2).pack(padx = 5, pady = 5)
main_wd.mainloop()
为了使用,使用
trace
是错误的,这意味着,传递的位置参数是错误的,它必须是'w'
而不是'write'
。然后在使用()
时调用函数,因此需要使用lambda
。所以你trace
会是这样的:那么您的函数将类似于:
提示: 最好是
entry1
和entry2
不是None
,所以说:当在声明的同一行上说}和{}
pack()
时,它将返回最后一个方法返回的内容。在本例中,pack()
返回None
。因此,为了使这些条目小部件可重用,pack()
将它们放在单独的行中。这同样适用于{最终代码:
相关问题 更多 >
编程相关推荐