QText编辑。如何手动选择文本?

2022-04-13 00:00:00 qt selection qtextedit c++

textEdit->textCursor()->selectionStart()textEdit->textCursor()->selectionEnd()这样的函数,但没有setSelectionStartsetSelectionEnd函数。

有没有办法手动选择文本的某些部分?


解决方案

 QTextCursor c = textEdit->textCursor();
 c.setPosition(startPos);
 c.setPosition(endPos, QTextCursor::KeepAnchor);
 textEdit->setTextCursor(c);

这段代码使用setPosition将光标移动到所选内容的开始位置,然后将其移动到所选内容的末尾,但通过将MoveMode指定为第二个参数,将选择锚点保留在旧位置。

最后一行将所选内容设置为在编辑控件内可见,因此,如果您只想对所选文本进行一些操作,则应跳过它。

另外,如果您没有确切的位置,movePosition会很有帮助:您可以在various ways中移动光标,例如向右或向下移动一个单词。

相关文章