Traceback missing when exception encountered in pyqt5 Code in eclipse(pydev)(在eclipse(Pydev)中的pyqt5代码中遇到异常时缺少回溯)
问题描述
这可能是对过去一年未回答的问题的轻微重复,但我希望我能提供更多信息,并看到它得到回答。
问题是,一旦代码进入到PyQt5的循环中,任何崩溃都不会导致回溯显示在控制台或我所知道的任何其他地方,但是,如果相同的程序只是从命令行使用与eclipse使用的完全相同的命令运行,回溯就会毫无问题地显示出来。
在单独的计算机上全新安装所有列出的组件后确认了问题。
构建环境:
ECLIPSE NEON 4.6.3-64位Java
PYDEV 5.8
Python 3.6.1 64或32位版本
PyQt 5.8.2-通过PIP3安装
这是一个演示该问题的完整微程序,如果我从命令行运行它并单击按钮,我会得到一个回溯,但如果该程序正在运行,并从eclipse中按下按钮,我就得不到一个回溯。
from PyQt5 import QtWidgets
import sys
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.btn = QtWidgets.QPushButton('text', self)
self.btn.clicked.connect(self.handleButton)
def handleButton(self):
error_trigger
if __name__ == '__main__':
print ("Start")
app = QtWidgets.QApplication(sys.argv)
#error_trigger
myapp = MainWindow()
myapp.show()
sys.exit(app.exec_())
是否有人知道会导致此行为的任何已知问题或配置选项?
推荐答案
它在互联网上随机浏览了很多次,但最终找到了解决该问题所需的代码,这里发布的代码供有相同问题的其他人参考。当我最终找到它的时候很明显。;)
from PyQt5 import QtCore
import traceback, sys
if QtCore.QT_VERSION >= 0x50501:
def excepthook(type_, value, traceback_):
traceback.print_exception(type_, value, traceback_)
QtCore.qFatal('')
sys.excepthook = excepthook
希望这能帮助他人。
这篇关于在eclipse(Pydev)中的pyqt5代码中遇到异常时缺少回溯的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在eclipse(Pydev)中的pyqt5代码中遇到异常时缺少回溯
基础教程推荐
- 如何在 Spring @Value 注解中正确指定默认值? 2022-01-01
- Java Swing计时器未清除 2022-01-01
- 不推荐使用 Api 注释的描述 2022-01-01
- 多个组件的复杂布局 2022-01-01
- 从 python 访问 JVM 2022-01-01
- 大摇大摆的枚举 2022-01-01
- 如何在 JFrame 中覆盖 windowsClosing 事件 2022-01-01
- 验证是否调用了所有 getter 方法 2022-01-01
- Java 实例变量在两个语句中声明和初始化 2022-01-01
- 在 Java 中创建日期的正确方法是什么? 2022-01-01
