Tkinter <KP_Enter> 绑定无响应



我已经阅读了相当多的其他线程似乎正在处理这个问题,但没有一个给我修复。有问题的按钮的代码是:

#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。我希望它两者兼而有之。

你可能在Windows下编码。KP_Enter仅在Unix(linux,bsd...)上有效。在窗口下,返回和KP_Enter是相同的键:返回

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

最新更新