我正在尝试按照this tutorial使用wxPython和wxFormBuilder快速创建简单的GUI。
使用wxFormBuilder,我创建了一个超级简单的框架,其中包含一个垂直布局,一个编辑文本控件和一个按钮,它只清除文本控件的值。 WxFormBuilder生成了Python代码,我只是添加了几行来清除单击按钮时文本控件的值。这是一个愚蠢的简单框架的图像。
当我在Python中运行此文件时,GUI会清除我在文本控件中键入的文本。当我点击Frame的关闭按钮时,我看到了:
swig/python detected a memory leak of type 'wxPyXmlSubclassFactory *', no destructor found.
我尝试了谷歌搜索问题,但只发现Python足够动态,不需要析构函数。我确实尝试添加__del__
函数,但我仍然收到相同的错误消息。
摆脱那个错误的想法?我正在使用:
提前非常感谢你!
如果有人需要,这是我的代码:
# -*- 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()
答案 0 :(得分:4)
我在使用最新版本(3.0.0)时遇到同样的错误。自那以后,没有新版本发布。不用担心。期待很快就能看到修复。
查看上一篇文章here
答案 1 :(得分:3)
从我的能力来看,这对于wxPython来说是一个相当无害的错误,但听起来好像作者有一个可能会或可能没有发布的修复程序:
http://trac.wxwidgets.org/changeset/75542
对wxPython不太了解,但是查看版本3.0.0(12月)发布的时间戳和我刚刚链接的更改(Jan),看起来它可能不在您拥有的版本中。你有没有尝试更新wxPython?最糟糕的情况是,如果您感到勇敢,可以尝试自己更改链接代码。祝你好运!