Russian Qt Forum
Ноябрь 23, 2024, 08:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Подсветка текста в QTextEdit  (Прочитано 3468 раз)
Ka3a4oK
Гость
« : Май 01, 2008, 20:25 »

С помощью функции setPlainText загружаю документ в QTextEdit. Документ представляет собой обычный текст разбитый на строки, примерно одинаковой длины. Мне необходимо подсветить(изменить цвет фона) текста определенной длины в определенной позиции. Позиция текста определяется относительно начала документа. Длина подсвечиваемого текста может быть любая. Как это сделать наиболее правильно?
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #1 : Май 01, 2008, 20:38 »

С помощью функции 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
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.142 секунд. Запросов: 22.