我处理过同样的问题,答案是双重的:
崩溃的原因可能是任何事情.它可能是一个编程错误,调用一个不存在的函数,传递一个小部件而不是一个布局等等.但是由于你没有得到有用的输出,你不知道在哪里寻找罪魁祸首.这是由:
PyQT引发并捕获异常,但不会传递它们.相反,它只是退出状态为1以显示异常被捕获.
要捕获异常,您需要覆盖sys异常处理程序:
# Back up the reference to the exceptionhook sys._excepthook = sys.excepthook def my_exception_hook(exctype, value, traceback): # Print the error and traceback print(exctype, value, traceback) # Call the normal Exception hook after sys._excepthook(exctype, value, traceback) sys.exit(1) # Set the exception hook to our wrapping function sys.excepthook = my_exception_hook
然后在执行代码中,将其包装在try/catch中.
try: sys.exit(app.exec_()) except: print("Exiting")