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

Выкрутился следующим образом:
    /// 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);    
    }

- достаточно элегантно, на мой взгляд, но может есть способ лучше?
PAFOS
Есть еще интересный метод QTextBlock::revision(), может быть чем нить полезен будет
AlekseyK
Цитата(PAFOS @ 30.12.2010, 20:49) *
Есть еще интересный метод QTextBlock::revision(), может быть чем нить полезен будет

Надо пробовать, но это вроде не о том: ревизию сам ставишь и читаешь с удалением не должно быть связано.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.