С помощью функции setPlainText загружаю документ в QTextEdit. Документ представляет собой обычный текст разбитый на строки, примерно одинаковой длины. Мне необходимо подсветить(изменить цвет фона) текста определенной длины в определенной позиции. Позиция текста определяется относительно начала документа. Длина подсвечиваемого текста может быть любая. Как это сделать наиболее правильно?
Наследуй от QTextEdit и в наследнике переопредели paintEvent.
Примерно так:
void TextEdit::paintEvent ( QPaintEvent * event )
{
QPainter painter( viewport() );
if ( CurrentLineVisible && CurrentLineColor.isValid() )
{
QRect r = cursorRect();
r.setX( 0 );
r.setWidth( viewport()->width() );
painter.fillRect( r, QBrush( CurrentLineColor ));
}
QTextEdit::paintEvent( event );
}
Надо поиграть с
QRect r