给出了使用wiki.wxpython.org组合框构建网格的示例代码。使用键盘导航网格时,无法禁用单元格编辑。按 Enter 时,下拉列表将被隐藏,但控件仍处于活动状态。按 Enter , Esc 或 Tab 没有任何效果。
wx.ComboBox
确实有一个wx.EVT_TEXT_ENTER
事件,允许在“锁定”状态下处理 Enter 。那么,在处理程序中执行DisableCellEditControl
应该会停止编辑吗?好吧,编辑器是隐藏的,但光标仍在隐藏编辑器中。使用 Up / Down 时可以访问下拉列表。
def on_text_enter(evt):
self.grid1.DisableCellEditControl()
self.comboBox.Bind(wx.EVT_TEXT_ENTER, on_text_enter)
答案 0 :(得分:0)
这是橡皮鸭调试的另一个例子。意识到焦点仍然在组合框内,鸭子开始想知道手动恢复焦点是否能解决问题。这样做了。因此,为了将来参考,事件处理程序:
def on_text_enter(evt):
self.grid1.DisableCellEditControl()
self.grid1.SetFocus()
self.comboBox.Bind(wx.EVT_TEXT_ENTER, on_text_enter)