Мне нужно нарисовать большую сетку для моего приложения (например, 100 строк, 1000 столбцов). Я использую QGraphicsView с установленным окном просмотра OpenGL (не сильно повышает производительность).
Приложение достаточно отзывчивое, но я хотел бы знать, правильно ли я все делаю.
В основном у меня есть GridItem, который наследует QGraphicsItem, и я попробовал две вещи:
1) Конструктор создает тысячи QGraphicsRectItem, передавая этот (GridItem) как родительский (QGraphicsItem *). Я правильно реализовал член boundingRect () (я верю).
2) Конструктор создает множество QGraphicsLineItem таким же образом.
В обоих случаях метод рисования GridItem ничего не делает, так как рисование дочерних элементов обрабатывается автоматически Qt.
Вариант 1) примерно в три раза быстрее, чем вариант 2). Мой вывод заключается в том, что большие линии, которые выходят за пределы области просмотра, не слишком оптимизированы и слишком много объектов перерисовываются без необходимости. Как вы думаете, это правильное объяснение?
Это заставило меня задуматься, правильно ли я справился с проблемой. Как бы вы нарисовали очень большую сетку?
Вверху этой сетки у меня есть еще один слой квадратов, которые можно нажимать, перетаскивать и т. Д.
Заранее спасибо!
С уважением,
djfm