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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как определить, что блок текста удалён?  (Прочитано 1598 раз)
AlekseyK
Гость
« : Декабрь 30, 2010, 03:29 »

Вобщем такая проблема получилась: беру все блоки (QTextBlock) из QPlainTextEdit::document() сохраняю в QList. Затем, например, при редактировании какой-то блок удаляю. Так вот тот, что остаётся в QList ведёт себя очень странно:
  • текст внутри меняется - становится пустой строкой, но блоки без текста тоже содержат пустую строку - это не показатель!
  • blockNumber() - непредсказуемый, а должен быть -1
  • isValid() - true, а должен быть false по идее (написал багрепорт в Qt)
  • другие значения, такие как position() и др. тоже никак не говорят, что блок был удалён

Выкрутился следующим образом:
Код
C++ (Qt)
   /// QList<QTextBlock>        m_pTextBlocks; - in class definition
...
   for(int i = 0; i < m_pTextBlocks.length(); i++)
   {
       if(m_pTextBlocks[i] != document()->findBlockByNumber(m_pTextBlocks[i].blockNumber()))
           m_pTextBlocks.removeAt(i);    
   }
- достаточно элегантно, на мой взгляд, но может есть способ лучше?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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