A single pair of beginInsertRows() and endInsertRows() with 100 rows should not be taking long.
Have you measured the time for this?
E.g. using QElapsedTimer.
Something like
QElapsedTimer timer;
timer.start();
beginInserRows(....);
// update your data
endInsertRows();
qDebug() << "Update time for one chunk of data:" << timer.elapsed();
QElapsedTimer timer;
timer.start();
beginInserRows(....);
// update your data
endInsertRows();
qDebug() << "Update time for one chunk of data:" << timer.elapsed();
To copy to clipboard, switch view to plain text mode
This is the time the UI will be "blocked" as this happens on the main thread the same way as processing user and paint events.
Be sure that the method doing this is really being called asynchronously, i.e. execution returning to the event loop between calls.
Cheers,
_
Bookmarks