0

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

#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。我希望两者都能做到。

4

2 回答 2

0

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

于 2013-10-02T17:43:25.867 回答
0

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

于 2020-06-09T20:34:25.213 回答