Я не очень хорошо знаком с моделью памяти Qt, особенно когда дело касается обработки изображений. Я создал пустую pixmap и добавляю ее в сцену QGraphicsView. Кажется, он работает правильно, прыгая между двумя размерами, но я заметил, что получаю графические артефакты, вызывающие эту функцию, если я открою QFileDialog (before и after). Эти артефакты находятся в фактическом представлении, поскольку я могу передвигаться, и они остаются настоящими. Не похоже, где на экране появляется QFileDialog, я все еще получаю эти проблемы.QGraphicsView показывает артефакты после открытия диалогового окна файла
Есть ли что-то, что мне нужно сделать, чтобы вручную переустановить эту часть изображения или у меня, вероятно, есть более серьезные проблемы в другом месте кода?
void RenderView::setViewport(int width, int height)
{
if (_viewportOverlay != 0)
scene()->removeItem(_viewportOverlay);
const int BORDER = VIEWPORT_BORDER;
QImage image(width+BORDER*2,height+BORDER*2, QImage::Format_ARGB32);
QPixmap pixmap = QPixmap::fromImage(image);
_viewportOverlay = scene()->addPixmap(pixmap);
}