Как я могу получить текстовую позицию щелчка мыши?
Я хочу щелкнуть мышью на QTextEdit и получить текстовую позицию этого клика из документа. Где будет мой клик, если клик привел к вставке символа? Я надеюсь подорвать некоторые функции QTextEdit, поэтому я не хочу просто получать позицию от QTextCursor после того, как щелчок был обработан. По сути, я сам переопределяю mousePressEvent, но мне все еще нужно знать, что такое ближайший пробел в символах.
0 ответов
Когда вы щелкаете мышью, курсор перемещается в положение на текстовом редакторе. В этом случае,mouseReleaseEvent
лучше, чем mousePressEvent
,
def mouseReleaseEvent(self,event):
cursor = textediter.textCursor()
cursorRect = textediter.cursorRect(cursor)
position = cursor.position()
x,y = cursorRect.x(),cursorRect.y()
cursor.insertText("**************")
#you must catch the length of the characters by some way.
text_length = len("**************")
cursor.movePosition(cursor.Left,cursor.MoveAnchor,text_length)
position_after_inserting = cursor.position()
Просто вы можете узнать позицию в момент нажатия.
Если вы знаете позицию после вставки некоторого текста, позиция курсора будет после этой вставленной надписи. Таким образом, вы должны вернуться как длина текста в качестве позиции.