PyQt/lesson1/pyqt下重定向.py
2024-10-04 13:00:37 +08:00

47 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
import sys
import traceback
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QTextEdit
from PyQt5.QtCore import Qt
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Error Handling Example")
self.setGeometry(100, 100, 800, 600)
# 创建布局和文本编辑部件
layout = QVBoxLayout()
self.text_edit = QTextEdit()
# 将文本编辑部件添加到布局中
layout.addWidget(self.text_edit)
# 创建一个小部件并将布局设置为其布局
widget = QWidget()
widget.setLayout(layout)
# 将小部件设置为主窗口的中央部件
self.setCentralWidget(widget)
# 重定向错误输出到文本编辑部件
sys.excepthook = self.handle_exception
# 设置文本编辑部件为只读
self.text_edit.setReadOnly(True)
def handle_exception(self, exc_type, exc_value, exc_traceback):
# 将错误信息输出到文本编辑部件
error_message = ''.join(traceback.format_exception(exc_type, exc_value, exc_traceback))
self.text_edit.append(error_message)
if __name__ == "__main__":
app = QApplication([])
window = MyWindow()
window.show()
# 产生一个错误
print(1 / 0)
app.exec_()