Подробнее здесь: https://stackoverflow.com/questions/785 ... r-of-items
C++ Qt Производительность QScrollArea с большим количеством элементов ⇐ C++
-
Anonymous
C++ Qt Производительность QScrollArea с большим количеством элементов
В приложении, которое я создаю в Windows с библиотеками C++ и Qt, у меня возникают огромные проблемы с производительностью памяти из-за добавления такого большого количества элементов в прокручиваемую область. Это всего лишь QFrames, объекты макета, объекты-разделители и QLabels. QFrames используются только потому, что я выбрал именно такой способ создания цветного фона. Но на скриншоте показана типичная «строка» (с затемненными личными текстовыми данными), а у меня таких «строчек» около 500-600, на загрузку которых уходит около 1,8 ГБ ОЗУ!!! Загрузка занимает целую вечность, и прокрутка становится очень плохой, если размер окна изменяется или если я выхожу из приложения и возвращаюсь к нему. Если я ограничу загрузку примерно 30 строками, приложение станет полностью отзывчивым и быстрым. Итак, я думаю, мне нужно сделать что-то динамичное, например создать пул объектов и удалить их, когда они находятся вне поля зрения, или переназначить их для тех линий, которые находятся в поле зрения. Я немного не понимаю, как это сделать и является ли это правильным решением. Я попытался подключиться к сигналу «valueChanged(int)» QScrollBar, чтобы перерисовать его, но это замедляет работу и возвращает ползунок обратно в верхнее положение, это полный беспорядок, даже когда я рисую только 15 математически обоснованных линий. в положении прокрутки. Какие-либо предложения? Мне это не кажется чем-то отличным от большого файла электронной таблицы, и Microsoft Excel, кажется, отлично справляется с прокруткой больших наборов данных.
![Изображение]()
Подробнее здесь: https://stackoverflow.com/questions/785 ... r-of-items
Подробнее здесь: https://stackoverflow.com/questions/785 ... r-of-items
Мобильная версия