Python有类Tkinter的变量StringVar(),BooleanVar()等等,这些都共享方法get(),set(string)和trace(mode, callback)。callback作为第二个参数trace(mode, callback)传递给的函数将传递四个参数self, n, m, x。
StringVar()
BooleanVar()
get()
set(string)
trace(mode, callback)
callback
self, n, m, x
例如,BooleanVar()这些似乎是'', 'PYVAR0', 'w'。
'', 'PYVAR0', 'w'
第三个参数x似乎是触发跟踪的模式,在我的情况下,变量已更改。但是,第一个看似空字符串的变量是什么?如果我不得不猜测该变量的内部名称,第二秒是什么?
x
第一个参数 是内部变量名称。您可以将此名称用作tkintergetvar和setvar方法的参数。如果你给你的变量名称(例如:StringVar(name='foo')),这将是给定的名称,否则将是Tkinter的为您生成一个名称(例如:PYVAR0)
getvar
setvar
StringVar(name='foo')
PYVAR0
如果第一个参数表示列表变量(在tkinter中不太可能), 则第二个参数 将是该列表的索引。如果它是标量变量,则第二个参数将为空字符串。
第三个参数 是运算,如果您使用相同的方法读取,写入和/或删除变量, 该参数 很有用。此参数告诉您哪个操作触发了回调。对于写操作(设置变量),它将为“ w”;对于读操作(获取变量的值),将为“ r”。如果删除了变量,它将为“ u”(“ u”是“ unset”的缩写)
Tkinter是围绕tcl / tk解释器的python包装器。可以在以下位置找到有关变量跟踪的权威文档:http : //tcl.tk/man/tcl8.5/TclCmd/trace.htm#M14。虽然,这仅记录了内部跟踪的工作方式,但tkinter包装器有时还会处理数据。