Вопрос по – Удалить строку / блок из QTextEdit

5

Я борюсь с удалением блока / строки изQTextEdit, Код ниже должен (?) Работать, но он заканчивается бесконечным циклом по неизвестной мне причине. У меня есть подозрение, чтоnext() а такжеprevious() не приветствуются, еслиQTextDocument редактируется.

<code>QTextBlock block = document()->begin();
while (block.isValid()) {
    if (to_do_or_not_to_do(block)) {
        QTextCursor cursor(block);
        cursor.select(QTextCursor::BlockUnderCursor);
        cursor.removeSelectedText();
    }
    block = block.next();
}
</code>

Итерация с использованиемQTextDocument::findBlockByNumber() и удаление блока таким же образом, как описано выше, также не сработало.

Я был бы признателен, если бы кто-нибудь указал мне правильное направление, как перебирать все блоки и удалять их при необходимости.

P.S.
In my particular case one block = one line.
Qt 4.6.2, Ubuntu 10.04 x64

Ваш Ответ

1   ответ
5

while (block.isValid()) {
    if (to_do_or_not_to_do(block)) {
        QTextCursor cursor(block);
        block = block.next();
        cursor.select(QTextCursor::BlockUnderCursor);
        cursor.removeSelectedText();
    }
    else
        block = block.next();
}
Error: User Rate Limit ExceededremoveSelectedText()Error: User Rate Limit Exceedednext()Error: User Rate Limit Exceeded Andrejs Cainikovs

Похожие вопросы