gpt4 book ai didi

python - 在 Tkinter 中将多个参数传递给 StringVar 的回调

转载 作者:行者123 更新时间:2023-12-01 05:03:50 26 4
gpt4 key购买 nike

我正在使用一个小网格的 Entry 小部件。它可以是 5 x 1 或 5 x 5 或介于这些尺寸之间或接近这些尺寸的其他尺寸。当数据输入 Entry 小部件时,我希望能够最终将其传递到 str() 变量的二维数组。

问题是如果我有多个 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 - 所以我也需要知道如何做到这一点。)

最佳答案

是的,您可以添加任何您想要的参数。

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))

关于python - 在 Tkinter 中将多个参数传递给 StringVar 的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25460653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com