我正在使用tkinter
作为GUI。我将事件绑定到这样的条目:
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:可能与更新延迟有关。
答案 0 :(得分:1)
绑定应该适用于每个按键 - 如果不是,您在代码中的其他位置执行某些操作以防止其工作,或者您的测试存在缺陷。
如果希望在值更改时调用函数,则可能需要考虑在与条目窗口小部件关联的变量上设置跟踪。无论是通过键盘输入,使用鼠标粘贴等,都会在值发生变化时触发跟踪。当用户使用箭头键或返回键时,不会调用您的回调,或者任何其他不影响价值的关键。
例如:
def var_callback(*args):
print "the variable has changed:", PathFileName.get()
PathFileName.trace("w", var_callback)
答案 1 :(得分:0)
可以通过更改
来解决EntryFilePath.bind("<Key>", updateAmountOfPeople)
到
EntryFilePath.bind("<KeyRelease>", updateAmountOfPeople)