At last I found the way:

Qt Code:
  1. QGraphicsTextItem::keyPressEvent(event);
  2. QTextBlock block = document()->findBlock(textCursor().position());
  3. QTextLine line = block.layout()->lineForTextPosition(textCursor().positionInBlock());
  4. qreal cursor_y_position = document()->documentLayout()->blockBoundingRect(block).y() + line.y();
  5. qreal line_height = line.height();
  6. qDebug("New cursor position: %.2f %.2f", cursor_y_position, line_height);
  7. if ( _actual_position > cursor_y_position )
  8. {
  9. ScrollToPosition(cursor_y_position);
  10. }
  11. if ((_actual_position + _height) < (cursor_y_position + line_height))
  12. {
  13. ScrollToPosition(cursor_y_position + line_height - _height);
  14. }
To copy to clipboard, switch view to plain text mode