Создаю программу для моделирования изменения энтальпийного (температурного, грубо говоря) поля при кондуктивной теплопередачи в массиве грунтов. Можете считать, для простоты понимания, что это CAD.
Там сцена и вью. В сцене лежит много-много кирпичиков. Кирпичики надо иногда, например, выделять. Для этого используется прямоугольное выделение. Прямоугольное выделение представлено как виджет, рисующийся во вьюпорте вью.
Проблема в том, что при изменении геометрии выделения (размеров или положения этого виджета), пускается paintEvent для области, являющейся окаймляющей старую и новую геометрию. При этом перерисовываются все кирпичики, лежащие и лежавшие только что под этим виджетом. А это долго, если их много (заметно от 1500).
Можно ли как-нибудь самому задавать QRegion, в котором должен пускаться paintEvent при resize/move?
Вот скриншот (для вашего вдохновения): http://rghost.ru/3347253/image.png