Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
莫哈韦的Python分段错误11_Python_Macos_Segmentation Fault_Wxpython_Macos Mojave - Fatal编程技术网

莫哈韦的Python分段错误11

莫哈韦的Python分段错误11,python,macos,segmentation-fault,wxpython,macos-mojave,Python,Macos,Segmentation Fault,Wxpython,Macos Mojave,MacOS 10.14.5(莫哈韦) Python 3.7.3 wxPython 4.0.6 继续使用“分段错误:11”获取崩溃 例如,我有一个显示wx.ctrl的应用程序。它显示并填充OK,但如果我试图选中一个框或移动一个项目,Python就会崩溃 我在这个主题上找到了很多帖子,但它们都引用了更旧的版本,并且它们提供的解决方案对当前版本无效 如有任何建议,将不胜感激 我编写了一个简单的应用程序来重现这个问题。和以前一样,它的绒线很干净,最初运行正常。窗口将打开,列表框将添加三项。如果我试图移动

MacOS 10.14.5(莫哈韦)

Python 3.7.3

wxPython 4.0.6

继续使用“分段错误:11”获取崩溃

例如,我有一个显示wx.ctrl的应用程序。它显示并填充OK,但如果我试图选中一个框或移动一个项目,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中也会崩溃。问题似乎是,在创建小部件期间,您必须给出
项的列表
顺序

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

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()

以防万一,显示项目是否选中的说明如下。

您的代码在macOS 10.14.4和Win10中也会崩溃。问题似乎是,在创建小部件期间,您必须给出
项的列表
顺序

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

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()

以防万一,显示项目是否选中的说明不正确。

您能发布一些代码来显示问题吗?您能发布一些代码来显示问题吗?谢谢,这非常有帮助。我对wxPython文档感到非常失望-它没有任何地方表明这些是必需的项目。你会得到这样的印象,即你可以在创建列表后填充它。谢谢,这非常有帮助。我对wxPython文档感到非常失望-它没有任何地方表明这些是必需的项目。人们得到的印象是,您可以在创建列表后填充它。