pyqt5 textedit 删除经过指定行的行
pyqt5 textedit delete lines as they move past specified line
我想设置 PYQT Qtextedit 小部件并使用它来监视另一个应用程序 activity 日志(如 Linux 上的 tail -f)。从长远来看,我担心它 运行 时间太长,并且使用大量 ram 来构建文本。是否可以设置一个限制,以便删除超过第 x 行的文本?根据我的发现,它似乎需要自定义工作,如果存在的话,我想找到一个限制器设置。
QPlainTextEdit
是支持纯文本的高级 viewer/editor。它经过优化以处理大型文档并快速响应用户输入。
要限制可见行的数量,您必须使用 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_())
如果您想使用字体,您可以使用 HTML 轻松完成。
我想设置 PYQT Qtextedit 小部件并使用它来监视另一个应用程序 activity 日志(如 Linux 上的 tail -f)。从长远来看,我担心它 运行 时间太长,并且使用大量 ram 来构建文本。是否可以设置一个限制,以便删除超过第 x 行的文本?根据我的发现,它似乎需要自定义工作,如果存在的话,我想找到一个限制器设置。
QPlainTextEdit
是支持纯文本的高级 viewer/editor。它经过优化以处理大型文档并快速响应用户输入。
要限制可见行的数量,您必须使用 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_())
如果您想使用字体,您可以使用 HTML 轻松完成。