pyqt5 textedit 当行移过指定行时删除行

sid*_*cal 4 python pyqt qtextedit python-3.x pyqt5

我想设置 PYQT Qtextedit 小部件并使用它来监视另一个应用程序活动日志(如 Linux 上的 tail -f)。长期来看,我担心它运行时间太长,并且使用大量内存来构建文本。是否可以设置限制,以便删除经过 x 行的文本?从我发现它似乎需要定制工作,如果存在,我想找到一个限制器设置。

eyl*_*esc 5

QPlainTextEdit是支持纯文本的高级查看器/编辑器。它经过优化,可处理大型文档并快速响应用户输入。

为了限制你必须使用的可见行数setMaximumBlockCount,在下面的例子中我展示了使用:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

counter = 0

def addText():
    global counter
    w.appendHtml("<font size=\"3\" color=\"red\">{}</font>".format(counter))
    counter += 1

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = QPlainTextEdit()

    timer = QTimer()
    timer.timeout.connect(addText)
    timer.start(1000)
    w.setMaximumBlockCount(4)
    w.show()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

如果您想使用字体,您可以使用 HTML 轻松完成。