Pyside2 QTextBrowser overwriteMode不会替换旧文本

时间:2019-02-05 11:37:21

标签: python qt pyside2 qtextbrowser

我正在使用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的新手,有人可以帮助我吗?我想念什么?谢谢!

1 个答案:

答案 0 :(得分:0)

根据overwriteMode属性的documentation

  

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

     

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

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