C++ 将Qgraphicscene渲染到QImage会导致对象放置在QImage的一侧
我的QGraphicscene相当大,QGraphicsView只能容纳其中的一小部分 我想打印/保存Qgraphicscene 当然,在我进行实验时,我会将对象放置在视口的中心 保存的图像包含所有对象,但对象的位置在图像的左侧 输入: 输出: 来自windows照片查看器的屏幕截图 似乎创建了大小正确的图像,但仅渲染视口内容-视口的左上角位于图像的左上角,剩下的图像为空 为什么会这样?我做错了什么 更新: 尝试C++ 将Qgraphicscene渲染到QImage会导致对象放置在QImage的一侧,c++,image,qt,C++,Image,Qt,我的QGraphicscene相当大,QGraphicsView只能容纳其中的一小部分 我想打印/保存Qgraphicscene 当然,在我进行实验时,我会将对象放置在视口的中心 保存的图像包含所有对象,但对象的位置在图像的左侧 输入: 输出: 来自windows照片查看器的屏幕截图 似乎创建了大小正确的图像,但仅渲染视口内容-视口的左上角位于图像的左上角,剩下的图像为空 为什么会这样?我做错了什么 更新: 尝试 fitInView(scene()->sceneRect()); 结果在
fitInView(scene()->sceneRect());
结果在视口中显示整个图像,缩放。。。但是保存的图像仍然只包含非常小的视口
答案在我的补充解释中 我应该做的
scene()->render(&painter);
我正在渲染视口。。。。不是场景scene->scene.size返回一个QRectF,toSize函数做什么?根据文档,它不是QRectF的成员:从QSizeF返回QSize。。。。。。。尺寸是正确的,我已经用qDebug测试过了对不起,我弄错了。我现在看到了。如果您先调用QGraphicsView::fitInView,它也会这样做吗?我刚刚尝试过,视口显示缩放的图像,但输出仍然是一样的,因为我忽略了纵横比。我将添加屏幕截图颜色没有区别-但当我编辑我的问题以回答你时,我发现了它,谢谢你的帮助
scene()->render(&painter);