首页 > 解决方案 > Pyside2 QTextBrowser overwriteMode 不替换旧文本

问题描述

我正在使用 PySide2 包,发现它overwriteMode在我的代码中不起作用。这是我写的:

self.ui.textBrowser.setOverwriteMode(True)
self.ui.textBrowser.insertPlainText('test1\ntest2\ntest3')
self.ui.textBrowser.moveCursor(QTextCursor.Start)
self.ui.textBrowser.insertPlainText('hhh')

完整的源代码

我使用 Qt-Creator 来设计我的 GUI,我的 QTextBrowser 设置如下所示:

QTextBrowser 设置

我得到以下输出:

输出

如您所见,第一行应该是“hhht1”,但它给出了“hhhtest1”。

我正在 Windows 10 上使用 PySide2 版本 5.11.2 对此进行测试。

我是 Qt 新手,谁能帮帮我?我错过了什么?谢谢!

标签: pythonqtpyside2qtextbrowser

解决方案


根据该物业的文件:overwriteMode

此属性保存用户输入的文本是否会覆盖现有文本

与许多文本编辑器一样,文本编辑器小部件可以配置为使用用户输入的新文本插入或覆盖现有文本。

显然,仅影响用户overwriteMode输入的文本。

您可能需要执行以下操作:

text = 'test1\ntest2\ntest3'
self.ui.textBrowser.setPlainText(text)
inserted_text = 'hhh'
text = inserted_text + text[len(inserted_text):]
self.ui.textBrowser.setPlainText(text)

推荐阅读