QTextEdit вставляет и удаляет строки очень медленно.В любом случае, чтобы сделать это быстрее? - PullRequest
1 голос
/ 31 марта 2012

У меня есть таблица с 50 строками в объекте QTextEdit.Удаление 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);
    }
}

1 Ответ

7 голосов
/ 31 марта 2012

Кажется, что если вы поместите свой код между вызовами на textCursor.beginEditBlock() и textCursor.endEditBlock(), это будет считаться одной операцией, и обновление будет мгновенным для вашего теста на 500 строк.

...