QTextEdit插入和删除行非常慢。无论如何要让它更快?

时间:2012-03-30 21:26:11

标签: c++ performance qt qtextedit

我在QTextEdit对象中有一个包含50行的表。 逐行删除50行,然后逐行添加50行大约需要1-2秒。

有没有办法加快这项操作。

我只需要查看最终结果。 (即在我完成移除然后添加行之后)。

因为我确切地知道什么需要时间我找不到工作。

以下是一些测试它的简单代码:

//ui->textEdit is the text edit control
//This will insert 500 rows then remove 499 rows.

QTextCursor textCursor = ui->textEdit->textCursor();
textCursor.setPosition(1);
if(textCursor.currentTable() !=0)
{
    for(int i =0;i<500;i++)
    {
        textCursor.currentTable()->insertRows(1,1);
    }
    for(int i =0;i<499;i++)
    {
        textCursor.currentTable()->removeRows(1,1);
    }
}

1 个答案:

答案 0 :(得分:7)

似乎如果您将代码放在textCursor.beginEditBlock()textCursor.endEditBlock()的调用之间,则会将其视为单个操作,并且您的500行测试会立即进行更新。