python分割故障11上的莫哈韦(Mojave)



macos 10.14.5(莫哈维(

python 3.7.3

wxpython 4.0.6

继续使用"分段故障:11"

崩溃

例如,我有一个显示WX.RearRangectRl的应用程序。它显示并填充还可以,但是如果我尝试选中一个框或移动项目,则python会崩溃。

我找到了有关此主题的许多线程,但它们都指的是许多较旧的版本,并且它们提供的解决方案对于当前版本无效。

任何建议都将不胜感激。

我写了一个简单的应用来重现问题。和以前一样,它可以清洁,最初运行正常。窗口打开,列表框添加了三个项目。如果我尝试移动项目或选中一个框,则会发生分割故障崩溃。每次都会发生这种情况。

import wx

class mainFrame(wx.Frame):
    def __init__(self, *args, **kw):
        super(mainFrame, self).__init__(*args, **kw)
        pnl = wx.Panel(self)
        mainsizer = wx.BoxSizer(orient=wx.VERTICAL)
        self.vlist = wx.RearrangeCtrl(pnl)
        self.vlist.Create(pnl, -1, size=(600,400))
        mainsizer.Add(self.vlist, 1, wx.EXPAND | wx.ALL, 10)
        pnl.SetSizerAndFit(mainsizer)
        self.loadList()
    def loadList(self):
        self.vlist.GetList().Append("first line")
        self.vlist.GetList().Append("second line")
        self.vlist.GetList().Append("third line")

if __name__ == '__main__':
    app = wx.App()
    frm = mainFrame(None, title='Crash Test', size=wx.Size(800, 600))
    frm.Show()
    app.MainLoop()

您的代码也会在MacOS 10.14.4和Win10中崩溃。问题似乎是您必须在创建wx.RearrangeCtrl小部件期间给出itemsorder的列表。

下面的代码现在在两个操作系统中正常工作。

import wx

class mainFrame(wx.Frame):
    def __init__(self, *args, **kw):
        super(mainFrame, self).__init__(*args, **kw)
        pnl = wx.Panel(self)
        mainsizer = wx.BoxSizer(orient=wx.VERTICAL)
        items = ['first line', 'second line', 'third line']
        order = [0, 1, 2]
        self.vlist = wx.RearrangeCtrl(pnl, -1, size=(600, 400), order=order, items=items)
        mainsizer.Add(self.vlist, 1, wx.EXPAND | wx.ALL, 10)
        pnl.SetSizerAndFit(mainsizer)
if __name__ == '__main__':
    app = wx.App()
    frm = mainFrame(None, title='Crash Test', size=wx.Size(800, 600))
    frm.Show()
    app.MainLoop()

以防万一,以下描述显示的项目是否在此处。

相关内容

  • 没有找到相关文章

最新更新