Добавить более одной строки в QTextEdit PyQt - PullRequest
8 голосов
/ 14 октября 2011

привет У меня возникла довольно странная проблема с моим PyQT QTextEdit. Когда я ввожу строку из моего QLineEdit, она добавляет ее, но, скажем, я ввожу другую, первая строка исчезает, я так полагаю, потому что я не добавляю текст. Есть идеи, как мне это сделать?

вот соответствующий код


    self.mytext.setText(str(self.user) + ": " + str(self.line.text()) + "\n")

и важный


    self.mySignal.emit(self.decrypt_my_message(str(msg)).strip() + "\n")

Редактировать *

Я понял, что мне нужно использовать QTextCursor


    self.cursor = QTextCursor(self.mytext.document())


    self.cursor.insertText(str(self.user) + ": " + str(self.line.text()) + "\n")

* веселит

1 Ответ

10 голосов
/ 14 октября 2011

Метод setText() заменяет весь текущий текст, поэтому вам просто нужно использовать метод append().(Обратите внимание, что оба эти метода автоматически добавляют завершающий символ новой строки).

import sys
from PyQt4 import QtGui

class Window(QtGui.QWidget):
    def __init__(self):
        QtGui.QWidget.__init__(self)
        layout = QtGui.QVBoxLayout(self)
        self.button = QtGui.QPushButton('Test')
        self.edit = QtGui.QTextEdit()
        layout.addWidget(self.edit)
        layout.addWidget(self.button)
        self.button.clicked.connect(self.handleTest)

    def handleTest(self):
        self.edit.append('spam: spam spam spam spam')

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    win = Window()
    win.show()
    sys.exit(app.exec_())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...