我使用 QPixmapItem 在 QGraphicsview 视口中显示图像。我一次加载数千个像素图。所以我决定设置一些选项来缓存我为图像加载的像素图。这是我所做的:
View->scene()->setItemIndexMethod(QGraphicsScene::NoIndex);
View->setRenderHint(QPainter::Antialiasing, false);
QGLFormat fmt;
fmt.setSampleBuffers(true);
fmt.setSamples(2);
//View->setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
View->setViewport(new QGLWidget(fmt));
View->setOptimizationFlags(QGraphicsView::DontSavePainterState | QGraphicsView::DontAdjustForAntialiasing);
View->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
View->setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
View->setCacheMode(QGraphicsView::CacheBackground);
如果我不使用 QGLWidget 和 OpenGL 作为 QGraphicsVIew 的视口,则像素图看起来很正常,但如果我使用 OpenGL 视口,则渲染的像素图看起来“模糊”。“模糊”的情况在左侧,在右侧正常。