我正在使用一小部分Entry小部件网格。它可以是5 x 1或5 x 5或其他尺寸在这些尺寸之间或附近。当数据输入Entry小部件时,我希望能够最终将其传递给str()变量的2D数组。
问题是如果我有多个StringVar()变量,当我使用StringVar.trace()时,有没有办法将额外的参数传递给回调函数?
我目前有:
import Tkinter
guiRoot = Tkinter.Tk()
hWindow = Tkinter.Frame(guiRoot)
hWindow.grid();
def callback(*args):
print "Current value:",sv.get()
sv = Tkinter.StringVar()
sv.trace("w", callback)
Tkinter.Entry(hWindow, textvariable=sv).grid(row=1,column=1)
guiRoot.mainloop()
但是我想将回调传递给X和Y坐标。这可能吗?
如果我可以使用StringVar的回调来完成它,我可以为Entry小部件执行吗?
如果我使用Entry小部件执行此操作,是否有一种方法可以将事件传递给回调(以及X和Y信息)到回调函数?
换句话说,我有什么方法可以:
def callback(*args):
print "Array coordinates of Entry (or Stringvar):",x,y
print "Current value:",sv.get
(是的,我知道我必须有一些方法在该回调中引用x和y - 所以我也需要知道如何做到这一点。)
答案 0 :(得分:2)
是的,你可以添加你想要的任何参数。
def callback(x,y,*args):
print "x:", x, "y:", y
print "args:", args
...
sv.trace("w", lambda name1, name2, op, x=100, y=200: callback(x,y,name1,name2,op))