Python 3.3 Tkinter的Entry小部件的关键更新

我正在使用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:它可能与它具有更新延迟有关。


繁华开满天机
浏览 340回答 2
2回答

泛舟湖上清波郎朗

绑定应该对每个按键都有效-否则,您正在代码中的其他位置进行某些操作以防止其起作用,或者您的测试存在缺陷。如果要在值更改时调用函数,则可能需要考虑在与条目窗口小部件关联的变量上设置跟踪。无论值是通过键盘输入,使用鼠标粘贴等,只要值发生更改,跟踪都会触发。当用户使用箭头键或回车键或任何其他不使用此键的回调键时,该跟踪将不会调用您的回调影响价值。例如:def var_callback(*args):&nbsp; &nbsp; print "the variable has changed:", PathFileName.get()PathFileName.trace("w", var_callback)

慕勒3428872

可以通过改变来解决EntryFilePath.bind("<Key>",&nbsp;updateAmountOfPeople)到EntryFilePath.bind("<KeyRelease>",&nbsp;updateAmountOfPeople)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python