Python有Tkinter的变量类StringVar(),BooleanVar()等等,这些都共享方法get(),set(string)和trace(mode, callback).callback作为第二个参数传递的函数传递了trace(mode, callback)四个参数,self, n, m, x.
BooleanVar()这些似乎是一个例子'', 'PYVAR0', 'w'.
第三个参数x似乎是触发跟踪的模式,在我的情况下,变量已更改.但是,第一个看似空字符串的变量是什么?什么是第二个,如果我不得不猜测我会说变量的内部名称?
Bry*_*ley 26
第一个参数是内部变量名称.在tkinter上下文中或多或少没用,但对底层tcl解释器非常有用.
如果第一个参数表示一个列表变量(在tkinter中不太可能),则第二个参数将是该列表的索引.如果是缩放器变量,则第二个参数将是空字符串.
第三个参数是操作,如果您使用相同的方法读取,写入和/或删除变量,则非常有用.此参数告诉您哪个操作触发了回调.写入操作(设置变量)和"r"用于读取操作(获取变量的值)将为"w".如果变量被删除则为"u"("u"为"未设置"的缩写)
Tkinter是一个围绕tcl/tk解释器的python包装器.可以在此处找到变量跟踪的权威文档:http://tcl.tk/man/tcl8.5/TclCmd/trace.htm#M14.虽然,这仅记录了内部跟踪的工作原理,但tkinter包装器有时会对数据进行按摩.
小智 11
第一个参数是变量的名称,但不是"无用",因为您可以在声明变量时设置它,例如:
someVar = IntVar(name="Name of someVar")
Run Code Online (Sandbox Code Playgroud)
当您检查跟踪回调中的第一个参数时,它将等于"someVar的名称".使用名称来区分变量,然后可以绑定相同的处理程序以跟踪对任意数量变量的更改,而不是需要为每个变量使用单独的处理程序.
| 归档时间: |
|
| 查看次数: |
17330 次 |
| 最近记录: |