为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁华开满天机 2021-03-15 10:42:14
我正在使用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:它可能与它具有更新延迟有关。
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

绑定应该对每个按键都有效-否则,您正在代码中的其他位置进行某些操作以防止其起作用,或者您的测试存在缺陷。


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


例如:


def var_callback(*args):

    print "the variable has changed:", PathFileName.get()

PathFileName.trace("w", var_callback)


查看完整回答
反对 回复 2021-03-30
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

可以通过改变来解决

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

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


查看完整回答
反对 回复 2021-03-30
  • 2 回答
  • 0 关注
  • 335 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信