Цитировать
Или кривовато???
я бы ожидал багов да=)весь смысл QTableView в вертикальном хедере который позволяет менять высоту строк (а как следствие высоту всей вью и макс значение скроллбара)
Используй QTreeView с uniformRowHeights=true https://doc.qt.io/qt-6/qtreeview.html#uniformRowHeights-prop - так оно будет вычислять скроллбар как firstRowHeight*rowCount() а не суммировать в цикле.
Скорее всего тормоза у тебя не уйдут так потому что все равно чтобы посчитать высоту
Цитировать
У меня используется мьюченный std::unordered_map ну чтобы threadsafe был и данные добавляются при этом формируется ключ, чтобы
если уже такие данные есть до мы просто их обновляем.
не вижу особо проблем - в модели у тебя все равно будет вектор/дек так как ты в какой-то момент захочешь сортировку по колонкам делать и менять содержимое элементовесли уже такие данные есть до мы просто их обновляем.
надо только аккуратно держать в синке вектор с мапой
в целом можно избежать вставки в середину лайфхаком - всегда добавлять новое в конец (beginInsertRows) а потом пересортировывать (вызывая в просессе layoutAboutToBeChanged/layoutChanged)
Делать фулл reset не очень удобно на практике так как полностью перерисоывает вьюпорт, сбрасывает селекшн.
Вьюша же рисует только то что попадает во вьпорт и если ряды добавляются вне его то никаких перерисовок не будет