这个是程序界面
在数据量比较多的时候(8000+),双击Table中的Item修改数据,再关闭程序就会有这种报错,完全不知道怎么去调试这种关闭时候的程序崩溃
工具是一个TXT文本解析工具,按照配置好的XML文件里面的格式,来解析具体的TXT文本,方便查看和修改(后续可能还需要增加一些校验、排序等功能完善)
程序在打开十几条数据的文本文件的时候各种操作都没什么问题,但是打开的文本数据量稍微大一些,再点击几下界面操作,关闭程序后就会出现这种错误
关键的关键是不知道要怎么调试这种Python GUI程序关闭时候的报错,希望能有大神提供一下调试的思路,我是完全懵逼不知道怎么调
工具不复杂,但是代码也是有好几百行,贴出来可能有点长,只贴一下main程序的结构吧,界面UI是用Qtdesinger作的,然后引用了UI.py 文件,读写TXT的类也稍微封装了一下在另外一个文件里面
一楼说道的重载closeEvent的做法似乎没什么用,依然是调试不了,然后我注意了一下程序崩溃时候的ExitCode
**“Process finished with exit code -1073741819 (0xC0000005)”
每次都是一样的ExistCode**
class mywindow(QtGui.QWidget, Ui_Form): def __init__(self): super(mywindow, self).__init__() self.setupUi(self) self._setComboBoxText() self.m_sFilename = None self.toolButton.clicked.connect(self.Getfilename) self.pushButton.clicked.connect(self.AnalyseTXT) self.pushButton_2.clicked.connect(self.SaveFile) self.ErrorMessageDialog = QtGui.QMessageBox(self) #解析XML配置信息 def _setComboBoxText(self): pass #获取金手指文件名 def Getfilename(self): pass #初始化表格(这里用的是 QT的tableview组件,程序崩溃也是在数据量比较多的情况下双击界面的tableview修改Item里的数据才引起的) def InitTableView(self): pass #解析TXT文件 def AnalyseTXT(self): pass #保存TXT文件 def SaveFile(self): pass if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) myshow = mywindow() myshow.show() app.exec_()
我之前的程序里是通过重载
closeEvent
解决的同时,main函数添加
app.setActiveWindow()
,如从窗口关闭开始进行逐行调试。