python3.3tkinter的Entry widget在key上的更新

2024-05-14 08:30:02 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: key功能信息bindtkinter字母事件条目
2条回答

绑定应该适用于每一次按键,如果不是,你在代码的其他地方做了一些事情来阻止它工作,或者你的测试有缺陷。在

如果希望在值更改时调用函数,可以考虑对与entry小部件关联的变量设置跟踪。无论是通过键盘输入还是用鼠标粘贴等方式,只要值发生变化,跟踪都会触发。当用户使用箭头键或return键或任何其他不影响值的键时,它都会调用回调函数。在

例如:

def var_callback(*args):
    print "the variable has changed:", PathFileName.get()
PathFileName.trace("w", var_callback)

它可以通过改变来解决

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

^{pr2}$

相关问题 更多 >

    热门问题