Tkinter 变量跟踪方法回调的参数是什么?
What are the arguments to Tkinter variable trace method callbacks?
Python 有 类 用于 Tkinter 变量 StringVar()
、BooleanVar()
等。这些都共享方法 get()
、set(string)
、和 trace(mode, callback)
。作为第二个参数传递给 trace(mode, callback)
的 callback
函数被传递了四个参数,self, n, m, x
.
例如 BooleanVar()
这些似乎是 '', 'PYVAR0', 'w'
。
第三个参数 x
似乎是触发跟踪的模式,在我的例子中,变量已更改。但是,第一个看起来是空字符串的变量是什么?第二个是什么,如果我不得不猜测我会为变量说一些内部名称?
第一个参数是内部变量名。您可以使用此名称作为 tkinter getvar
和 setvar
方法的参数。如果你给你的变量一个名字(例如:StringVar(name='foo')
)这将是给定的名字,否则它将是一个由 tkinter 为你生成的名字(例如:PYVAR0
)
如果第一个参数表示一个列表变量(在 tkinter 中极不可能),第二个参数 将是该列表的索引。如果它是标量变量,则第二个参数将为空字符串。
第三个参数是操作,如果你用同样的方法读、写and/or删除变量时很有用。此参数告诉您哪个操作触发了回调。它将是“读取”、“写入”或“取消设置”之一。
Tkinter 是 python 对 tcl/tk 解释器的封装。可以在此处找到有关变量跟踪的权威文档:http://tcl.tk/man/tcl8.5/TclCmd/trace.htm#M14。虽然,这仅记录了内部跟踪的工作方式,但 tkinter 包装器有时会处理数据。
第一个参数是变量的名称,但不是"useless",因为您可以在声明变量时设置它,例如:
someVar = IntVar(name="Name of someVar")
当您检查跟踪回调中的第一个参数时,它将等于 "Name of someVar"。使用名称来区分变量,然后您可以绑定相同的处理程序来跟踪对任意数量变量的更改,而不需要为每个变量使用单独的处理程序。
Python 有 类 用于 Tkinter 变量 StringVar()
、BooleanVar()
等。这些都共享方法 get()
、set(string)
、和 trace(mode, callback)
。作为第二个参数传递给 trace(mode, callback)
的 callback
函数被传递了四个参数,self, n, m, x
.
例如 BooleanVar()
这些似乎是 '', 'PYVAR0', 'w'
。
第三个参数 x
似乎是触发跟踪的模式,在我的例子中,变量已更改。但是,第一个看起来是空字符串的变量是什么?第二个是什么,如果我不得不猜测我会为变量说一些内部名称?
第一个参数是内部变量名。您可以使用此名称作为 tkinter getvar
和 setvar
方法的参数。如果你给你的变量一个名字(例如:StringVar(name='foo')
)这将是给定的名字,否则它将是一个由 tkinter 为你生成的名字(例如:PYVAR0
)
如果第一个参数表示一个列表变量(在 tkinter 中极不可能),第二个参数 将是该列表的索引。如果它是标量变量,则第二个参数将为空字符串。
第三个参数是操作,如果你用同样的方法读、写and/or删除变量时很有用。此参数告诉您哪个操作触发了回调。它将是“读取”、“写入”或“取消设置”之一。
Tkinter 是 python 对 tcl/tk 解释器的封装。可以在此处找到有关变量跟踪的权威文档:http://tcl.tk/man/tcl8.5/TclCmd/trace.htm#M14。虽然,这仅记录了内部跟踪的工作方式,但 tkinter 包装器有时会处理数据。
第一个参数是变量的名称,但不是"useless",因为您可以在声明变量时设置它,例如:
someVar = IntVar(name="Name of someVar")
当您检查跟踪回调中的第一个参数时,它将等于 "Name of someVar"。使用名称来区分变量,然后您可以绑定相同的处理程序来跟踪对任意数量变量的更改,而不需要为每个变量使用单独的处理程序。