什么是Tkintervariables跟踪方法callback的参数?
Python有Tkintervariables类StringVar()
, BooleanVar()
等类。这些都共享get()
, set(string)
和trace(mode, callback)
。 作为trace(mode, callback)
的第二个parameter passing的callback
函数传递了四个参数self, n, m, x
。
对于BooleanVar()
的例子来说,它们看起来是'', 'PYVAR0', 'w'
。
第三个参数x
似乎是触发跟踪的模式,在我的情况下,variables被改变了。 但是,第一个variables是什么,似乎是一个空string? 第二,如果我不得不猜测,我会说变数的内部名称?
第一个参数是内部variables名称。 在tkinter环境中或多或less都没有用处,但是对于底层的tcl解释器是非常有用的。
如果第一个参数代表一个列表variables(不太可能在tkinter中), 那么第二个参数将是该列表的索引。 如果它是一个缩放variables,第二个参数将是空string。
第三个参数是该操作,如果您正在使用相同的方法来读取,写入和/或删除该variables,则该操作非常有用。 这个参数告诉你哪个操作触发了callback。 对于写操作(设置variables)和“r”进行读取操作(获取variables的值)将是“w”。 如果variables被删除(“u”是“未设置”的缩写),它将是“u”
Tkinter是一个围绕tcl / tk解释器的python包装器。 有关variables追踪的权威性文档可以在这里find: http : //tcl.tk/man/tcl8.5/TclCmd/trace.htm#M14 。 虽然,这只logging内部跟踪如何工作,但tkinter包装器有时会按摩数据。