You can use QTextEdit::cursorForPosition
:
QTextEdit textEdit;
//...
QTextCursor cursor = textEdit.cursorForPosition(QPoint(0, 0));
QPoint bottom_right(textEdit.viewport()->width() - 1, textEdit.viewport()->height() - 1);
int end_pos = textEdit.cursorForPosition(bottom_right).position();
cursor.setPosition(end_pos, QTextCursor::KeepAnchor);
qDebug() << cursor.selectedText();