我在QTextEdit对象中有一个包含50行的表。
删除50行1乘1,然后添加50行1乘1大约需要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);
    }
}

最佳答案

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

07-24 09:32