Как я могу получить текстовую позицию щелчка мыши?

Я хочу щелкнуть мышью на 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()

Просто вы можете узнать позицию в момент нажатия.

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

Другие вопросы по тегам