私はwxpythonを初めて使用しますが、(大きな)指定されたコードを編集する必要があります。
bsButtons = wx.BoxSizer(wx.HORIZONTAL)
self.cmdOk = wx.Button(self, label=_(u"Ok"))
self.cmdOk.Bind(wx.EVT_BUTTON, self.OnOk)
bsButtons.Add(self.cmdOk,
border=4,
flag=wx.RIGHT)
self.cmdCancel = wx.Button(self, label=_(u"Abbrechen"))
self.cmdCancel.Bind(wx.EVT_BUTTON, self.OnCancel)
bsButtons.Add(self.cmdCancel)
..。
def OnOk(self, event):
self.EndModal(wx.ID_OK)
def OnCancel(self, event):
self.EndModal(wx.ID_CANCEL)
デフォルトで「OK」ボタンにフォーカスを設定したいので、「Enter」キーでこのボタンを実行します。私はすでにこの行を追加しようとしました:
self.cmdOk.SetDefault()
しかし、これはうまくいきませんでした。(エラーはありませんが、Enterキーを押しても効果はありませんでした)私を助けてくれる人はいますか?ありがとう!
編集:私は以下を挿入しました:
self.Bind(wx.EVT_KEY_DOWN, self.on_key_down)
...
def on_key_down(self, event):
if event.GetKeyCode() == wx.WXK_RETURN:
self.EndModal(wx.ID_OK)
else:
event.Skip()
しかし、これは機能しません。足りないものがあります。最初の行は次のようになっている必要があります。
self.button.Bind(wx.EVT_BUTTON, self.OnButton)
しかし、私の場合、「ボタン」が何であるかわかりませんか?!
Edit2:最後に動作します:
self.etcFormula.Bind(wx.EVT_KEY_DOWN, self.on_key_down)
etcFormulaは、私が話していた編集行です(焦点はどこにありますか)。これで、Enterボタンをキャッチしたいときに、この編集行を参照する必要があることがわかりました。