我使用QPixmapItem在QGraphicsview视口中显示图像。我一次加载数千个pixmaps。所以我决定设置一些选项来缓存我为图像加载的像素图。这就是我所做的:
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的视口,则pixmaps看起来很正常,但如果我使用OpenGL视口,渲染的像素图看起来“模糊”。 “模糊”案例在左侧,正常在右侧。