Pyside2 QTextBrowser overwriteMode не заменяет старый текст - PullRequest
0 голосов
/ 05 февраля 2019

Я использую пакет 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 для разработки своего графического интерфейса, и мои настройки для QTextBrowser выглядят так:

Настройки QTextBrowser

Я получил следующий вывод:

Вывод

Как видите,первая строка должна быть 'hhht1', но она дает 'hhhtest1'.

Я тестирую это с PySide2 версии 5.11.2 на Windows 10.

Я новичок в Qt, и кто-нибудь может мне помочь?Чего мне не хватает?Спасибо!

1 Ответ

0 голосов
/ 05 февраля 2019

Согласно документации свойства 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)
...