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)
另請參閱:
版權聲明: 本文為獨傢原創稿件,版權歸 樂數軟件 ,未經許可不得轉載。