gpt4 book ai didi

python - 如何修复来自 wxPython/wxFormBuilder 的 "memory leak of type ' wxPyXmlSubclassFactory *', no destructor found"错误?

转载 作者:太空狗 更新时间:2023-10-30 02:20:32 25 4
gpt4 key购买 nike

我正在尝试关注 this tutorial使用 wxPython 和 wxFormBuilder 快速制作简单的 GUI。

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

simple frame

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

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

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

消除该错误的想法?我正在使用:

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

最佳答案

我一直在使用最新版本 (3.0.0) 时遇到同样的错误。此后没有发布新版本。不过不用担心。期待很快看到修复。

看看最后一篇文章here

关于python - 如何修复来自 wxPython/wxFormBuilder 的 "memory leak of type ' wxPyXmlSubclassFactory *', no destructor found"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22445210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com