继承wx.grid.GridCellTextEdi

2024-09-30 22:12:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图截取一个正在输入的文本编辑器的单元格wx.网格对象,方法是创建自定义单元格编辑器并将其设置为网格的默认单元格编辑器。在

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

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)

当“Init”消息框出现时,“begin edit”消息框从未出现。即使我从调试器显式调用BeginEdit()方法,也不会显示消息框。这使我认为BeginEdit方法在初始化期间被原始方法重写了。来人帮我弄清楚发生了什么事?在


Tags: 方法self网格消息initdefargs编辑器
1条回答
网友
1楼 · 发布于 2024-09-30 22:12:30

我不完全理解自定义单元格编辑器背后的魔力,但这个example可能是一个很好的起点。似乎你必须重写更多的方法才能使它工作。在

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

相关问题 更多 >