如果要将日志输出到Qt的编辑框中,你需要将输出重定向到Qt的TextEdit控件中。以下是一个示例代码,将日志输出到Qt的TextEdit控件中:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit
import logging

class LogTextEditHandler(logging.Handler):
    def __init__(self, text_edit):
        super().__init__()
        self.text_edit = text_edit

    def emit(self, record):
        log_message = self.format(record)
        self.text_edit.append(log_message)

# 创建全局的 logger
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

# 创建一个handler,用于将日志输出到控制台
console_handler = logging.StreamHandler()

# 创建一个handler,用于将日志输出到TextEdit控件中
text_edit_handler = LogTextEditHandler(text_edit)
text_edit_handler.setLevel(logging.DEBUG)

# 导出 logger
__all__ = ['logger']

# 设置日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 将formatter添加到handler
console_handler.setFormatter(formatter)
text_edit_handler.setFormatter(formatter)

# 将handler添加到logger
logger.addHandler(console_handler)
logger.addHandler(text_edit_handler)

# 测试日志输出
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warning("This is a warning message")
logger.error("This is an error message")

# 创建Qt应用程序
app = QApplication(sys.argv)

# 创建主窗口
window = QMainWindow()
window.setGeometry(100, 100, 600, 400)

# 创建TextEdit控件
text_edit = QTextEdit(window)
text_edit.setGeometry(10, 10, 580, 380)

# 显示主窗口
window.show()

# 运行Qt应用程序
sys.exit(app.exec_())

在上面的代码中,我们创建了一个自定义的LogTextEditHandler类,继承自logging.Handler,用于将日志输出到Qt的TextEdit控件中。然后将这个handler添加到logger中,即可实现将日志输出到TextEdit控件中。

请注意,上述代码需要搭配PyQt5库使用,并且你需要将text_edit变量替换为你的TextEdit控件实例的变量名

import logging# 创建全局的 loggerlogger = logginggetLogger__name__loggersetLevelloggingDEBUG# 创建一个handler用于将日志输出到控制台console_handler = loggingStreamHandler# 导出 logger__all__ = loggerhandler = loggingFileHan

原文地址: http://www.cveoy.top/t/topic/i0pe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录