我该如何解决一个问题;类型为'的内存泄漏;WxPxML子类工厂*';,未找到析构函数“;来自wxPython/wxFormBuilder的错误?

我该如何解决一个问题;类型为'的内存泄漏;WxPxML子类工厂*';,未找到析构函数“;来自wxPython/wxFormBuilder的错误?,python,wxpython,wxformbuilder,Python,Wxpython,Wxformbuilder,我正在尝试使用wxPython和wxFormBuilder快速创建简单的gui 使用wxFormBuilder,我创建了一个超级简单的框架,有一个垂直布局、一个编辑文本控件和一个按钮,它只清除文本控件的值。WxFormBuilder生成了Python代码,我只添加了几行代码,以便在单击按钮时清除文本控件的值。这是一个愚蠢的简单框架的图像 当我用Python运行这个文件时,GUI会清除我在文本控件中键入的文本。当我单击框架的“关闭”按钮时,我看到: swig/python检测到“wxpyxmls

我正在尝试使用wxPython和wxFormBuilder快速创建简单的gui

使用wxFormBuilder,我创建了一个超级简单的框架,有一个垂直布局、一个编辑文本控件和一个按钮,它只清除文本控件的值。WxFormBuilder生成了Python代码,我只添加了几行代码,以便在单击按钮时清除文本控件的值。这是一个愚蠢的简单框架的图像

当我用Python运行这个文件时,GUI会清除我在文本控件中键入的文本。当我单击框架的“关闭”按钮时,我看到:

swig/python检测到“wxpyxmlsublassfactory*”类型的内存泄漏,未找到析构函数。

我尝试用谷歌搜索这个问题,但只发现Python的动态性足以不需要析构函数。我确实尝试过添加
\uuu del\uu
函数,但仍然收到相同的错误消息

如何消除这个错误?我正在使用:

  • Python 2.7.6
  • 适用于Python 2.7的wxPython 3.0.0.0
  • wxFormBuilder 3.4.2
  • Windows 7,32位
提前非常感谢

如果有人需要,我有以下代码:

# -*- coding: utf-8 -*- 

###########################################################################
## Python code generated with wxFormBuilder (version Feb 26 2014)
## http://www.wxformbuilder.org/
##
## PLEASE DO "NOT" EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc

###########################################################################
## Class MyFrame1
###########################################################################

class MyFrame1 ( wx.Frame ):

    def __init__( self, parent ):
        wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 203,155 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL )

        self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )

        bSizer1 = wx.BoxSizer( wx.VERTICAL )

        self.edit = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 )
        bSizer1.Add( self.edit, 1, wx.ALL|wx.EXPAND, 5 )

        self.clearButton = wx.Button( self, wx.ID_ANY, u"Clear", wx.DefaultPosition, wx.DefaultSize, 0 )
        bSizer1.Add( self.clearButton, 1, wx.ALL|wx.EXPAND, 5 )


        self.SetSizer( bSizer1 )
        self.Layout()

        self.Centre( wx.BOTH )

        # Connect Events
        self.clearButton.Bind( wx.EVT_BUTTON, self.clearFunc )

    def __del__( self ):
        pass


    # Virtual event handlers, overide them in your derived class
    def clearFunc( self, event ):
        event.Skip()

class SimpleFrame(MyFrame1):
    def __init__(self,parent):
        MyFrame1.__init__(self,parent)

    def clearFunc(self,event):
        self.edit.SetValue("")

app = wx.App(False)
frame = SimpleFrame(None)
frame.Show(True)
app.MainLoop()

据我所知,这是wxPython的一个相当无害的bug,但听起来作者有一个修复程序可能已经发布,也可能尚未发布:


我对wxPython了解不多,但看看3.0.0版(Dec)发布的时间戳和我刚刚链接的更改(Jan),看起来它可能不在您的版本中。你试过更新wxPython吗?最坏的情况是,如果你觉得勇敢,你可以尝试自己修改链接的代码。祝你好运

我在最新版本(3.0.0)中不断遇到相同的错误。从那以后没有发布新版本。不过没必要担心。希望不久能看到修复


看看上一篇帖子

你说的“不用担心”是什么意思?我该如何工作?“python-wignore”不起作用,我的意思是现在可以安全地忽略这个错误。开发人员Robert Dunn表示,他将在下一个版本之前创建一个适当的修复程序。明白了:如果Wxformbuilder添加了itThanks,请删除“import wx.xrc”行,用户2963623!很高兴知道我不是在做傻事。感谢您在作者的帖子中的挖掘@好的提示。我要花很长时间才能找到它,但确实,去掉那条线就行了。