Получение текста перед курсором - PullRequest
0 голосов
/ 20 мая 2018

Предположим, я набираю абзац с новыми строками, такими как

Hey mr Nikhil
Howdy you
Funny$ life isn't it.

Теперь рассмотрим символ доллара в качестве моего курсора.Если я могу напечатать свой текст по этому коду,

print(self.toPlainText())

Тогда как я могу получить текст перед курсором, чтобы мой вывод был,

Hey mr Nikhil
Howdy you
Funny

Помогите, пожалуйста.

1 Ответ

0 голосов
/ 20 мая 2018

Вы должны использовать позицию курсора:

import sys

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

class Widget(QWidget):
    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        lay = QVBoxLayout(self)
        self.te = QTextEdit()
        self.te.setPlainText('''Hey mr Nikhil\nHowdy you\nFunny life isn't it.''')
        lay.addWidget(self.te)
        button = QPushButton("Click Me")
        lay.addWidget(button)
        button.clicked.connect(self.on_clicked)

    def on_clicked(self):
        p = self.te.textCursor().position()
        result = self.te.toPlainText()[:p]
        print("result:\n{}".format(result))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())
...