wxPython 4中SetDefault()的对立面是什么?

wxPython 4中SetDefault()的对立面是什么?,wxpython,Wxpython,在一个简单的GUI中,当用户填写了必要的文本字段时,我会在按钮上使用SetDefault(),因此很明显,如果用户现在按下返回键,按钮将被按下。设置默认设置后,如何“撤消”默认设置SetDefault()没有参数,因此我无法调用SetDefault(False),也找不到合适的API调用来反转默认状态 如何反转或撤消wxPython中调用的SetDefault()操作?正如我现在所了解的,解决方案是在按钮上使用Enable()和Disable()。我试图通过“撤消”SetDefault()来完成

在一个简单的GUI中,当用户填写了必要的文本字段时,我会在按钮上使用
SetDefault()
,因此很明显,如果用户现在按下返回键,按钮将被按下。设置默认设置后,如何“撤消”默认设置SetDefault()没有参数,因此我无法调用
SetDefault(False)
,也找不到合适的API调用来反转默认状态


如何反转或撤消wxPython中调用的
SetDefault()
操作?

正如我现在所了解的,解决方案是在按钮上使用
Enable()
Disable()
。我试图通过“撤消”
SetDefault()
来完成的实际上是
Disable()
所做的。以下是现行工作守则的简略版本:

...
self.login.Bind(wx.EVT_TEXT, self.on_text)
self.password.Bind(wx.EVT_TEXT, self.on_text)
....
self.cancel_button = wx.Button(panel, wx.ID_ANY, "Cancel")
self.cancel_button.Bind(wx.EVT_KEY_DOWN, self.on_escape)
self.ok_button = wx.Button(panel, wx.ID_ANY, "OK")
self.ok_button.Bind(wx.EVT_KEY_DOWN, self.on_ok_enter_key)
self.ok_button.SetDefault()
self.ok_button.Disable()
....
def on_text(self, event):
    if self.login.GetValue() and self.password.GetValue():
        self.ok_button.Enable()
    else:
        self.ok_button.Disable()

将default()设置为另一个按钮,或者使用
self.SetFocus()
@RolfofSaxony,只要这么简单就行了。在这种情况下,没有其他按钮可以在逻辑上设置为备用默认值,
SetFocus()
不使用参数来取消设置按钮上的焦点。您的想法是将焦点设置在不是按钮的东西上吗?我知道您已经想出了一个解决方案,但是使用
self.SetFocus()
的想法是将焦点移动到帧本身,而不是按钮。