繁体   English   中英

特金特<KP_Enter>绑定无响应

[英]Tkinter <KP_Enter> binding unresponsive

我已经阅读了一些似乎正在处理这个问题的其他线程,但没有一个给我解决方案。 相关按钮的代码是:

#equals button
cmd = lambda x='=': self.Click(x)
self.equals_button = Button(self.MasterFrame, text='=', width=12,
                            height=2, command=cmd)
self.equals_button.grid(row=4, column=3, columnspan=3, sticky=W+E+N+S,
                        ipadx=2, padx=2, pady=2)
self.equals_button.bind("<KP_Enter>", cmd)

我尝试在代码的各个阶段在按钮上调用 .focus_set() 但无济于事(它不起作用)。 此代码出现在__init__方法中。 在该方法的前面,我在另一个必要的小部件实例上调用.focus_set() 我也尝试在主框架上调用此绑定,以及在主框架和按钮本身上调用 focus_set。 这些都没有帮助。 我没有收到任何错误消息。 当我单击鼠标时,该按钮确实起作用。 它只是不响应按 KP_Enter。 我希望两者兼而有之。

在凯文的帮助下,我解决了这个问题。 绑定到<KP_Enter>不起作用,但绑定到<Return>正在响应,但仍然无法正常工作。 因此,我没有绑定self.equals_button ,而是将 Entry 小部件本身绑定到<Return> ,这样它只在使用.focus_set()聚焦时才响应按键。 Entry 小部件中的数据用作.bind()参数中函数的参数。 所以现在我绑定了相同的功能,首先在我按下 Enter 键时绑定到 Entry 小部件(这包括我系统上的键盘输入,这是我想要的),然后再次在小部件实例化语句中( button=Button(etc.etc.command=myfunc) ),通过单击鼠标和按下键盘输入键,我可以使用相同的功能。 再次感谢凯文。

你可能在windows下编码。 KP_Enter 仅在 Unix(linux、bsd...)上有效。 windows下,Return和KP_Enter是同一个键:Return

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM