У меня есть виджет QPlainTextEdit, и я пытаюсь заставить курсор автоматически выбирать вставленный текст. Моя текущая методология состоит в том, чтобы выбрать назад, используя QTextCursor.WordLeft, потому что использование .insertText() перемещает курсор в конец этого слова. Спасибо!
Изменить: дальнейшее уточнение: в идеале я хочу, чтобы вставленный текст был выделен, а курсор был помещен в начало этого вставленного слова. Например: Состояние 1 -> Состояние 2
Состояние 1 показывает входное слово. Затем, когда пользователь нажимает пробел, программа вставляет слово, выделяет его и помещает курсор в начало этого вставленного слова, показанного в состоянии 2.
class TextBox(QPlainTextEdit):
def __init__(self):
QPlainTextEdit.__init__(self)
font = QtGui.QFont()
font.setPointSize(12)
self.setFont(font)
def keyPressEvent(self, keyEvent):
super(TextBox, self).keyPressEvent(keyEvent)
if keyEvent.key() == Qt.Key_Return :
self.clear()
elif keyEvent.key() == Qt.Key_Space:
cursor = self.get_cursor()
cursor.insertText("test") # The area of concern
cursor.selectionStart()
cursor.movePosition(QtGui.QTextCursor.WordLeft, QtGui.QTextCursor.KeepAnchor, 1)
cursor.selectionEnd()
# Moving the cursor position doesn't seem to do anything
def get_cursor(self):
return self.textCursor()
def get_cursor_pos(self):
return self.get_cursor().position()