вот кусок кода:
C++ (Qt)
QTextEdit *curDoc;
QTextCursor tc = curDoc->textCursor();
tc.clearSelection();
tc.setPosition(pos);
curDoc->setTextCursor(tc);
curDoc->moveCursor(QTextCursor::NextBlock,QTextCursor::KeepAnchor);
т.е. сначала устанавливаем курсор,затем двигаем его с флагом QTextCursor::KeepAnchor.