小编典典

Tkinter变量跟踪方法回调的参数是什么?

python

Python有类Tkinter的变量StringVar()BooleanVar()等等,这些都共享方法get()set(string)trace(mode, callback)callback作为第二个参数trace(mode, callback)传递给的函数将传递四个参数self, n, m, x

例如,BooleanVar()这些似乎是'', 'PYVAR0', 'w'

第三个参数x似乎是触发跟踪的模式,在我的情况下,变量已更改。但是,第一个看似空字符串的变量是什么?如果我不得不猜测该变量的内部名称,第二秒是什么?


阅读 265

收藏
2020-12-20

共1个答案

小编典典

第一个参数
是内部变量名称。您可以将此名称用作tkintergetvarsetvar方法的参数。如果你给你的变量名称(例如:StringVar(name='foo')),这将是给定的名称,否则将是Tkinter的为您生成一个名称(例如:PYVAR0

如果第一个参数表示列表变量(在tkinter中不太可能), 则第二个参数 将是该列表的索引。如果它是标量变量,则第二个参数将为空字符串。

第三个参数 是运算,如果您使用相同的方法读取,写入和/或删除变量, 该参数
很有用。此参数告诉您哪个操作触发了回调。对于写操作(设置变量),它将为“ w”;对于读操作(获取变量的值),将为“ r”。如果删除了变量,它将为“ u”(“
u”是“ unset”的缩写)

Tkinter是围绕tcl /
tk解释器的python包装器。可以在以下位置找到有关变量跟踪的权威文档:http
:
//tcl.tk/man/tcl8.5/TclCmd/trace.htm#M14。虽然,这仅记录了内部跟踪的工作方式,但tkinter包装器有时还会处理数据。

2020-12-20