wxpython:具有打开CellEditor的grid.Destroy即使使用DisableCellEditControl也会使Python崩溃

问题描述

我有一些wxpython代码,可以创建一个网格,用户可以在其中选择wx.ComboBox中的行数。如果用户选择0行,则ComboBox回调将删除网格。除在网格中打开CellEditor的Mac上之外,这都可以正常工作。在这种情况下,wxpython会导致分段错误,从而使Python崩溃。

我知道应该强制关闭打开的CellEditor,并且此代码应该执行以下操作:

    def OnRows(event):
        'Respond to a change in the number of rows'
        data['nPeaks'] = int(rows.GetValue())
        if peaksGrid and peaksGrid.IsCellEditControlEnabled():
            # complete any grid edits in progress
            print('closing CellEditControl')
            peaksGrid.HideCellEditControl()
            peaksGrid.disableCellEditControl()
            wx.CallLater(100,peaksGrid.Destroy)

我知道IsCellEditControlEnabled()返回True是因为执行了打印,但是即使这样,Destroy()也会使Python崩溃。

我还没有做详尽的测试,所以我不确定其他OS或不同版本的wx会发生什么。在这种情况下,我使用的是4.0.0b2,但我认为在销毁网格之前还需要做其他事情。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)