pyqt4 - "StackHash_0a9e error" when exit from python -


i'm beginner of python,i wrote small program, when exit program, (more 50% probability) show error.this occurred after exit program.could please me find there wrong code.

really thanks.

ps:i'm using python3.3 , pyqt4 on win7 sp1 x64

error:

 问题签名:  问题事件名称:    bex  应用程序名: python.exe  应用程序版本:    0.0.0.0  应用程序时间戳:   5150c40a  故障模块名称:    stackhash_0a9e  故障模块版本:    0.0.0.0  故障模块时间戳:   00000000  异常偏移:  00388100  异常代码:  c0000005  异常数据:  00000008  os 版本: 6.1.7601.2.1.0.256.1  区域设置 id:   2052  其他信息 1:    0a9e  其他信息 2:    0a9e372d3b4ad19135b953a78882e789  其他信息 3:    0a9e  其他信息 4:    0a9e372d3b4ad19135b953a78882e789 

console return this:

process finished exit code -1073741819

main code:

import urllib import http.cookiejar import time import sys bs4 import beautifulsoup pyqt4 import qtgui pyqt4 import qtcore   class baidumainwindow(qtgui.qmainwindow):     def __init__(self, parent=none):         super(baidumainwindow, self).__init__(parent)         self.initui()      def initui(self):         self.centralwidget = baiduwidget(self)         self.setcentralwidget(self.centralwidget)         self.resize(600, 400)         self.move(qtgui.qapplication.desktop().screen().rect().center() - self.rect().center())         self.statusbar().showmessage('ready')   class baiduwidget(qtgui.qwidget):     def __init__(self, parent):         super(baiduwidget, self).__init__(parent)         self.initui()      def initui(self):         lb = qtgui.qlabel('search word')         self.keywordedit = qtgui.qlineedit()         self.okbutton = qtgui.qpushbutton('search')         self.containfilter = qtgui.qlineedit()         self.exceptfilter = qtgui.qlineedit()         self.result = qtgui.qtextbrowser()          spaceritem = qtgui.qspaceritem(30, 50)          grid = qtgui.qgridlayout()         grid.setspacing(10)         grid.additem(spaceritem, 0, 0)         grid.addwidget(lb, 1, 0)         grid.addwidget(self.keywordedit, 2, 0)         grid.addwidget(self.okbutton, 5, 0)         grid.additem(spaceritem, 7, 0)         grid.addwidget(self.result, 0, 1, 8, 1)         grid.setcolumnstretch(1, 4)         self.setlayout(grid)    if __name__ == '__main__':     app = qtgui.qapplication(sys.argv)     form = baidumainwindow()     form.show()     sys.exit(app.exec_()) 

the problem is: spaceritem has beed added grid twice. object freed twice qt when exited program.

     def initui(self):         lb = qtgui.qlabel('search word')         self.keywordedit = qtgui.qlineedit()         self.okbutton = qtgui.qpushbutton('search')         self.containfilter = qtgui.qlineedit()         self.exceptfilter = qtgui.qlineedit()         self.result = qtgui.qtextbrowser()          spaceritem = qtgui.qspaceritem(30, 50)          grid = qtgui.qgridlayout()         grid.setspacing(10)         grid.additem(spaceritem, 0, 0)         grid.addwidget(lb, 1, 0)         grid.addwidget(self.keywordedit, 2, 0)         grid.addwidget(self.okbutton, 5, 0)         grid.additem(spaceritem, 7, 0)         grid.addwidget(self.result, 0, 1, 8, 1)         grid.setcolumnstretch(1, 4)         self.setlayout(grid)  

you should use 2 qspaceritems.

     def initui(self):         lb = qtgui.qlabel('search word')         self.keywordedit = qtgui.qlineedit()         self.okbutton = qtgui.qpushbutton('search')         self.containfilter = qtgui.qlineedit()         self.exceptfilter = qtgui.qlineedit()         self.result = qtgui.qtextbrowser()          spaceritem = qtgui.qspaceritem(30, 50)         spaceritem2 = qtgui.qspaceritem(30, 50)          grid = qtgui.qgridlayout()         grid.setspacing(10)         grid.additem(spaceritem, 0, 0)         grid.addwidget(lb, 1, 0)         grid.addwidget(self.keywordedit, 2, 0)         grid.addwidget(self.okbutton, 5, 0)         grid.additem(spaceritem2, 7, 0)         grid.addwidget(self.result, 0, 1, 8, 1)         grid.setcolumnstretch(1, 4)         self.setlayout(grid)  

Comments