0

wiki.wxpython.orgからのコンボボックスを使用してグリッドを構築するためのサンプル コードが与えられます。キーボードを使用してグリッドをナビゲートする場合、セルの編集を無効にする方法はありません。を押すEnterと、ドロップダウンは非表示になりますが、コントロールはアクティブのままです。EnterEscまたはを押しTabても効果はありません。

問題の例

にはイベントがあり、「ロック」状態でプレスを処理できwx.ComboBoxます。では、ハンドラー内で a を実行すると、編集が停止するはずですよね? エディタは非表示になっていますが、カーソルはまだ非表示のエディタ内にあります。/を使用すると、ドロップダウンにアクセスできます。wx.EVT_TEXT_ENTEREnterDisableCellEditControlUpDown

def on_text_enter(evt):
    self.grid1.DisableCellEditControl()

self.comboBox.Bind(wx.EVT_TEXT_ENTER, on_text_enter)

非表示のエディター内にカーソルが閉じ込められている

4

1 に答える 1

0

さて、これはラバーダックのデバッグの別のケースでした。フォーカスがまだコンボボックス内にあることに気づいたアヒルは、手動でフォーカスを復元すれば問題が解決するのではないかと考え始めました。そして、それはそれをしました。したがって、今後の参考のために、イベント ハンドラーは次のようになります。

def on_text_enter(evt):
    self.grid1.DisableCellEditControl()
    self.grid1.SetFocus()

 self.comboBox.Bind(wx.EVT_TEXT_ENTER, on_text_enter)
于 2012-11-10T12:03:51.247 に答える