【软件开发】日志输出到PYQT的文本框组件

基于Logging库实现日志输出到PYQT的文本框,考虑到多线程的情况使用信号。

class QTTextBrowserStreamHandler(logging.Handler):
    """
    QT文本框日志输出
    """

    __update_signal: pyqtSignal = pyqtSignal(str,
                                             name="update text browser")

    def __init__(self,
                 text_browser: QTextBrowser,
                 max_line: int = 100) -> None:
        """
        初始化
        :param text_browser: QTextBrowser文本框
        :param max_line: 最长显示行数
        """

        super().__init__()
        self.__text_browser = text_browser
        self.__max_line = max_line
        self.__existed_line = 0

        self.__update_signal.connect(self.__update_text)

    def __update_text(self,
                      text: str) -> None:
        """
        更新文本框
        :param text: 内容
        :return: None
        """

        if self.__existed_line >= self.__max_line:
            self.__text_browser.clear()
            self.__existed_line = 0

        self.__text_browser.setText(text)
        self.__existed_line += 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值