移除的QTextEdit线/块(Remove a line/block from QTextEdit

2019-06-24 03:13发布

我从块/线去除挣扎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();
}

使用迭代QTextDocument::findBlockByNumber()并以同样的方式如上没任何工作删除块。

我将不胜感激,如果有人可以点我到如何遍历槽的所有块,如果需要删除它们正确的方向。

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

Answer 1:

它改变了我一点点的作品:

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();
}


文章来源: Remove a line/block from QTextEdit