我已经阅读了一些似乎正在处理这个问题的其他一些线程,但是没有一个给我一个修复。相关按钮的代码是:
#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()
。我也尝试在Master框架上调用此绑定,以及在Master框架和按钮本身上的focus_set。这些都没有帮助。我没有收到任何错误消息。
单击鼠标时按钮可以正常工作。它只是不响应按下KP_Enter。我希望它能做到这两点。
答案 0 :(得分:0)
在凯文的帮助下,我解决了这个问题。绑定到<KP_Enter>
并不起作用,但绑定到<Return>
正在响应,但仍然无法正常工作。因此,我没有绑定self.equals_button
,而是将Entry小部件本身绑定到<Return>
,这样它只会在关注.focus_set()
时响应按键。
Entry小部件中的数据用作.bind()
参数中函数的参数。所以现在我有相同的函数绑定,首先是Enter小部件,当我按Enter键(这包括键盘输入我的系统,这是我想要的),再次在小部件实例化语句(button=Button(etc.etc.command=myfunc)
)中,允许通过单击鼠标并按键盘输入键,我具有相同的功能。再次感谢凯文。
答案 1 :(得分:0)
您可能在Windows下编写代码。 KP_Enter仅在Unix(Linux,bsd ...)上有效。 在Windows下,Return和KP_Enter是相同的键:Return