Inheriting wx.grid.GridCellTextEditor



我试图通过创建自定义单元格编辑器并将其设置为网格的默认单元格编辑器来拦截在 wx.grid 对象的单元格编辑器中键入的文本。

作为测试,我做了以下工作:

class CellEditor(wx.grid.GridCellTextEditor):
    def __init__(self):
        wx.MessageBox("Init")
        super(CellEditor, self).__init__()
    def BeginEdit(self, *args, **kwargs):
        wx.MessageBox("Begin Edit")
        super(CellEditor, self).BeginEdit(*args, **kwargs)
当"初始化"消息框

显示时,"开始编辑"消息框永远不会出现。 即使我从调试器显式调用 BeginEdit() 方法,也不会显示消息框。 这让我觉得在初始化期间,原始方法以某种方式重写了 BeginEdit 方法。 有人帮我了解发生了什么?

我不完全了解自定义单元格编辑器背后的魔力,但此示例可能是一个很好的起点。似乎您必须覆盖更多方法才能使其工作。

此外,我会小心覆盖方法,您的方法签名BeginEdit(self, *args, **kwargs)BeginEdit(self, row, col, grid)的覆盖签名不匹配。我做了一些快速测试,看看你是否可以覆盖这样的方法,看起来是这样,但它令人困惑,可能会导致错误。

相关内容

  • 没有找到相关文章

最新更新