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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как убрать определенный текст из QTextBrowser?  (Прочитано 3672 раз)
VAP
Гость
« : Декабрь 27, 2009, 13:10 »

Добрый день! Добавляю текст в QTextBrowser вызовом append(const QString &). Таких записей делаю определенное количество. После этого может возникнуть необходимость в случайном порядке убрать некоторые конкретные записи, по сигналу. Как такое можно сделать? В доках ничего подходящего не обнаружил.
Записан
BRE
Гость
« Ответ #1 : Декабрь 27, 2009, 13:16 »

Посмотри на QTextDocument/QTExtCursor.
Записан
VAP
Гость
« Ответ #2 : Декабрь 27, 2009, 14:09 »

Спасибо огромное BRE за подсказку. Использовал код из примера TextFinder + добавил QTextCursor::removeSelectedText (), может кому-то тоже пригодится.
Код:
void FilterDialog::deselect(QString &row)
{
    QTextDocument *doc = textBrowser->document();
    QTextCursor highlightCursor(doc);
    QTextCursor cursor(doc);
    cursor.beginEditBlock();
   
    QTextCharFormat plainFormat(highlightCursor.charFormat());

    while(!highlightCursor.isNull() && !cursor.isNull()) {
          highlightCursor = doc->find(row, highlightCursor, QTextDocument::FindWholeWords);
          if (!highlightCursor.isNull()) {
              highlightCursor.movePosition(QTextCursor::WordRight, QTextCursor::KeepAnchor);
              highlightCursor.removeSelectedText();
          }
    }
    cursor.endEditBlock();
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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