pyQt5-textBrowser常用方法

# -*- coding:utf-8 -*-
"""
@Time:2022/3/22 21:53
@Author:小柠檬
@File:text_browser.py
"""
import time
from PyQt5 import uic, QtCore
from PyQt5.QtCore import QThread, pyqtSignal, QObject
from PyQt5.QtWidgets import QApplication


class UpdateThread(QThread):
    # 实时显示追加线程(要继承QThread, 继承threading.Thread不行)
    signal = pyqtSignal(str)  # 信号

    def run(self):
        for i in range(1000):
            self.signal.emit(f'追加小柠檬{i+1}')  # 发射信号(实参类型要和定义信号的参数类型一致)
            time.sleep(0.01)


class QtSignal(QObject):
    # 自定义信号必须继承QObject且写在类中且必须是类变量
    signal = pyqtSignal(str)


class TextBrowser:
    # textBrowser一般用于显示文本

    def __init__(self):
        # 加载UI界面
        self.ui = uic.loadUi("text_browser.ui")

        # 1.写入文本(会覆盖之前的文本)
        self.ui.textBrowser.setText('写入小柠檬')

        # 2.追加文本(不会覆盖之前的文本)
        self.ui.textBrowser.append('追加小柠檬')
        self.ui.textBrowser.ensureCursorVisible()  # 每次添加文本光标都在最后一行

        # 3.获取文本
        text_browser_content = self.ui.textBrowser.toPlainText()
        print(text_browser_content)

        # 4.清空文本
        self.ui.textBrowser.clear()

        # 5.实时追加文本(采用多线程方式追加,不然界面会卡死)
        self.update_thread = UpdateThread()
        self.update_thread.signal.connect(self.slot_text_browser)  # 连接槽函数
        self.update_thread.start()

    def slot_text_browser(self, text):
        # text_browser槽函数
        self.ui.textBrowser.append(text)


def main():
    QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)  # 和designer设计的窗口比例一致
    app = QApplication([])
    text_browser = TextBrowser()
    text_browser.ui.show()
    app.exec_()


if __name__ == '__main__':
    main()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值