Заменить предыдущий текст на textBrowser PyQt5 - PullRequest
0 голосов
/ 12 октября 2019
textBrowser.append("Type_01")

работает отлично, но всякий раз, когда я снова запускаю программу, она добавляет новую строку вместо ее замены.

1 Ответ

1 голос
/ 12 октября 2019

Вы можете выбрать последнюю строку, удалить и добавить новый текст со следующим кодом:

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_())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...