Позиционирование курсора не работает должным образом в QPlainTextEdit в PythonPython

Программы на Python
Ответить
Anonymous
 Позиционирование курсора не работает должным образом в QPlainTextEdit в Python

Сообщение Anonymous »

Я пишу простое приложение на Python, используя PyQ. Я использую QPlainTextEdit в своем коде, но столкнулся с проблемой с позицией курсора. Если я просто вставляю новый текст, то вроде бы все прикрепляется к концу текста. Но я пытаюсь переместить курсор и получаю неожиданные результаты.

Код: Выделить всё

self.result_text = QPlainTextEdit()
self.cursor = self.result_text.textCursor()
self.result_text.toPlainText()
''

Код: Выделить всё

self.result_text.insertPlainText('1\n')
self.result_text.toPlainText()
'1\n'

Код: Выделить всё

self.result_text.insertPlainText('2\n')
self.result_text.toPlainText()
'1\n2\n'

Код: Выделить всё

self.result_text.moveCursor(self.cursor.atEnd())
self.result_text.insertPlainText('3\n')
self.result_text.toPlainText()
'3\n1\n2\n'

Теперь в результате кажется, что текст вводится в начале, хотя я установил позицию курсора в конце.

Код: Выделить всё

self.result_text.moveCursor(self.cursor.atStart())
self.result_text.insertPlainText('4\n')
self.result_text.toPlainText()
'3\n4\n1\n2\n'

Если я устанавливаю позицию курсора в начале, новый текст добавляется после предыдущего! Если я продолжаю вставлять текст, он добавляется после предыдущего.

Код: Выделить всё

self.result_text.insertPlainText(' 5 ')
self.result_text.toPlainText()
'3\n4\n 5 1\n2\n'

Код: Выделить всё

self.result_text.insertPlainText(' 6 ')
self.result_text.toPlainText()
'3\n4\n 5 6 1\n2\n'

Код: Выделить всё

self.cursor.position()
14

Код: Выделить всё

len(self.result_text.toPlainText())
14

Длина текста, похоже, также соответствует положению курсора.
Я определенно что-то упускаю, но понятия не имею, что делаю неправильно.>
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»