Вы можете выбрать последнюю строку, удалить и добавить новый текст со следующим кодом:
cursor = textBrowser.textCursor()
cursor.movePosition(QtGui.QTextCursor.End)
cursor.select(QtGui.QTextCursor.LineUnderCursor)
cursor.removeSelectedText()
cursor.insertText(text)
Пример:
from PyQt5 import QtCore, QtGui, QtWidgets
class Widget(QtWidgets.QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.textBrowser = QtWidgets.QTextBrowser()
self.lineEdit = QtWidgets.QLineEdit()
button = QtWidgets.QPushButton("Replace Last Line")
self.textBrowser.append("Stack\nOverflow\nHello\nWorld")
button.clicked.connect(self.on_clicked)
lay = QtWidgets.QVBoxLayout(self)
lay.addWidget(self.textBrowser)
lay.addWidget(self.lineEdit)
lay.addWidget(button)
@QtCore.pyqtSlot()
def on_clicked(self):
text = self.lineEdit.text()
if text:
self.replace_last_line(text)
def replace_last_line(self, text):
cursor = self.textBrowser.textCursor()
cursor.movePosition(QtGui.QTextCursor.End)
cursor.select(QtGui.QTextCursor.LineUnderCursor)
cursor.removeSelectedText()
cursor.insertText(text)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())