1

我在 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);
    }
}
4

1 回答 1

7

似乎如果您将代码放在对 and 的调用之间textCursor.beginEditBlock()textCursor.endEditBlock()则它被视为单个操作,并且对于您的 500 行测试,更新是即时的。

于 2012-03-31T00:00:32.460 回答