0

给出了使用来自wiki.wxpython.org的组合框构建网格的示例代码。使用键盘导航网格时,无法禁用单元格编辑。按下Enter时,下拉菜单隐藏,但控件仍处于活动状态。按Enter,EscTab没有任何效果。

问题示例

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)

光标被困在隐藏的编辑器中

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 回答