QGraphicsItemGroup为OpenGL纹理

时间:2014-05-07 13:02:07

标签: qt opengl

我正在研究一个在QGraphicsItemGroup中使用地图图块来渲染地图的应用程序,我想切换到OpenGL,这样我就可以在地图上添加3D形状。

为了尽可能顺利地进行,我需要从这个QGraphicsItemGroup中获取纹理。

1 个答案:

答案 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");