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

这个是程序界面

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

répondre à tous(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_()
刘奇

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!