0

我正在使用tkinterGUI。我将一个事件绑定到一个条目,如下所示:

EntryFilePath.bind("<Key>", updateAmountOfPeople)

它可以工作,但问题是它仅在按下键入输入以外的键时才会更新。退格触发它,箭头触发它,而不是字母或数字。我正在寻找这个功能。

其他可能重要的信息:

PathFileName = StringVar()
EntryFilePath = Entry(topLeftMidFrame, textvariable = PathFileName, width=45)
EntryFilePath.pack(side=TOP, pady=32, padx=10)

如何让它在任何键上触发?

编辑:我发现这只发生在它刚刚被选中时。它需要一次“其他”非 [a-Z0-9] 键之一,之后就可以使用了。不过,这是有问题的,以防人们立即开始写作。

EDIT2:这可能与更新延迟有关。

4

2 回答 2

2

绑定应该适用于每个按键 - 如果不是,您正在代码中的其他地方做一些事情以防止它工作,或者您的测试有缺陷。

如果您希望在值更改时调用函数,您可能需要考虑在与条目小部件关联的变量上设置跟踪。每当值更改时,跟踪都会触发,无论是通过键盘输入、鼠标粘贴等。当用户使用箭头键或返回键或任何其他不使用的键时,它不会调用您的回调影响价值。

例如:

def var_callback(*args):
    print "the variable has changed:", PathFileName.get()
PathFileName.trace("w", var_callback)
于 2013-06-09T13:51:58.153 回答
1

可以通过改变来解决

EntryFilePath.bind("<Key>", updateAmountOfPeople)

EntryFilePath.bind("<KeyRelease>", updateAmountOfPeople)
于 2013-06-09T13:34:05.727 回答