我正在研究一个在QGraphicsItemGroup中使用地图图块来渲染地图的应用程序,我想切换到OpenGL,这样我就可以在地图上添加3D形状。
为了尽可能顺利地进行,我需要从这个QGraphicsItemGroup中获取纹理。
答案 0 :(得分:0)
如果有人遇到这个问题,我设法得到了一些我可以使用的东西。我没有使用QGraphicsItemGroup,而是拍摄了整个场景并从中创建了一个用作纹理的图像。
代码提取:(地图是我的QGraphicsScene)
QImage img(ui->map->width(), ui->map->height(),QImage::Format_ARGB32_Premultiplied);
QPainter p(&img);
ui->map->fitInView(0,0,scene.width(),scene.height(),Qt::IgnoreAspectRatio);
ui->map->viewport()->render(&p);
p.end();
img.save("tmp.png");