要在Qt的QGraphicsView上绘制图层并将其保存为单独的文件,可以采用以下步骤:
- 创建一个QGraphicsScene对象,并将其设置为QGraphicsView的场景。
- 在场景中添加需要绘制的图形项,如QGraphicsItem、QGraphicsPixmapItem等。
- 创建一个新的QImage对象,大小与场景相同。
- 将QGraphicsView上的图形项渲染到该图片上,可以使用render()函数实现。
- 将生成的图片保存到本地文件。
下面是一个示例代码:
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QGraphicsScene>
#include <QtWidgets/QGraphicsView>
#include <QtGui/QPainter>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMainWindow mainWindow;
QGraphicsScene scene;
QGraphicsView view(&scene);
// 添加需要绘制的图形项
QGraphicsEllipseItem* ellipse = new QGraphicsEllipseItem(0, 0, 50, 50);
ellipse->setPos(10, 10);
scene.addItem(ellipse);
// 渲染并保存图片
QImage image(scene.sceneRect().size().toSize(), QImage::Format_ARGB32_Premultiplied);
QPainter painter(&image);
scene.render(&painter);
image.save("layer.png");
// 显示视图和主窗口
mainWindow.setCentralWidget(&view);
mainWindow.show();
return a.exec();
}
在这个例子中,我们创建了一个椭圆形图形项并将其添加到场景中。然后,我们创建了一个新的QImage对象,并使用QPainter将场景渲染到该图像上。最后,我们将生成的图像保存到本地文件“layer.png”。
希望这个例子能够帮助你在Qt的QGraphicsView上绘制和保存图层。