从QTextEdit中删除一行/块

And*_*ovs 5 qt qtextedit qtextdocument

我正在努力解决阻塞/线路移除问题QTextEdit.下面的代码应该(?)工作,但它最终会出现无限循环,因为某些未知的原因.如果正在编辑,我怀疑next()并且previous()不受欢迎QTextDocument.

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();
}
Run Code Online (Sandbox Code Playgroud)

QTextDocument::findBlockByNumber()与上面相同的方式迭代使用和删除块也没有用.

如果有人可以指出我如何迭代所有块并在需要时删除它们,我将不胜感激.

PS
在我的特定情况下,一个块=一行.
Qt 4.6.2,Ubuntu 10.04 x64

gum*_*mik 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();
}
Run Code Online (Sandbox Code Playgroud)