用Python 2.7&PyQt 4.8.7写了一个小工具,但是程序关闭的时候程序会崩溃,不知道怎么调试
巴扎黑
巴扎黑 2017-04-18 09:04:19
0
2
382

这个是程序界面

在数据量比较多的时候(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_()
巴扎黑
巴扎黑

Antworte allen (2)
迷茫

我之前的程序里是通过重载closeEvent解决的

def closeEvent(self, event): '''Close Window''' self.close()

同时,main函数添加app.setActiveWindow(),如

app = QtGui.QApplication(sys.argv) myshow = mywindow() app.setActiveWindow(myshow) myshow.show() app.exec_()
    刘奇

    从窗口关闭开始进行逐行调试。

      Neueste Downloads
      Mehr>
      Web-Effekte
      Quellcode der Website
      Website-Materialien
      Frontend-Vorlage
      Über uns Haftungsausschluss Sitemap
      Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!