PySide2 PyQt5 错误异常 调试漏洞 疑难杂症 解决办法汇总
一个应用程序能成形,是一些基本功能 + 无数次漏洞修复的成果。
这种无数次漏洞修复,最好采用 批处理式 IDE ,否则,一直停留在原型开发阶段还不如没有,那种生不如死的感觉,会让您怀疑人生。
调试时,最好强制直接注释掉无用代码 (或可能出错的代码段),测试时直接输出一些提示信息、生成本地文件或弹出错误提示对话框。
def variableTest(self, directory): print('One Check Point') #sender = sender() sender = self.sender() if directory: print('Two Check Point', directory) #self.signalTest.emit(text) self.signalTest.emit(directory)
print('One Check Point') 和 print('Two Check Point'),依次类推,用于标识先后顺序。
不建议采用一般 IDE 带的跳过代码标记测试法,因为不太直观 (还可能存在其它问题)。
由于标记间的原代码仍正常展示,有没有问题或错误值得怀疑。
以下基于实战,列出一些错误 异常示例代码及解决办法:
以下是源代码开发过程中,最常见的一种出错方式。
Python 解释器解释时可能不会输出错误提示而是直接崩溃,因为未导入变量 SIGNAL。
def testTimer(self): if not hasattr(self, "testTimer"): from PySide2.QtCore import QTimer; self.testTimer = QTimer() self.connect(self.testTimer, SIGNAL("timeout()"), self.textThread) self.testTimer.start(5000)
正确代码:
def testTimer(self): if not hasattr(self, "testTimer"): from PySide2.QtCore import QTimer, SIGNAL; self.testTimer = QTimer() self.connect(self.testTimer, SIGNAL("timeout()"), self.textThread) self.testTimer.start(5000)
See also:
Copyright Notice: This article is exclusive original manuscripts, copyrighted by Happy Digits Software , shall not be reproduced without permission.