Pyside2 QTextBrowser overwriteMode 不替换旧文本

Pyside2 QTextBrowser overwriteMode does not replace old text

我正在使用 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')

Complete source code

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

QTextBrowser settings

我得到以下输出:

Output

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

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

我是 Qt 的新手,有人可以帮助我吗?我错过了什么?谢谢!

根据documentationoverwriteMode 属性:

This property holds whether text entered by the user will overwrite existing text

As with many text editors, the text editor widget can be configured to insert or overwrite existing text with new text entered by the user.

显然 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)