在qgraphicsview上用drawpoints全部涂白之后如何保存
时间: 2024-03-27 12:35:09 浏览: 39
PyQt5利用QPainter绘制各种图形的实例
在Qt中,可以通过QPixmap类来保存QGraphicsView上的绘图内容。具体步骤如下:
1. 使用QPixmap的grabWidget方法将QGraphicsView上的绘图内容转换为QImage对象。
```cpp
QPixmap pixmap = QPixmap::grabWidget(ui->graphicsView, ui->graphicsView->rect());
QImage image = pixmap.toImage();
```
2. 将QImage对象涂白。
```cpp
image.fill(Qt::white);
```
3. 将QImage对象保存为图片文件。
```cpp
image.save("image.png");
```
完整的代码示例:
```cpp
#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QGraphicsEllipseItem>
#include <QPixmap>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QGraphicsScene scene;
QGraphicsView view(&scene);
// 绘制点
for (int i = 0; i < 10; i++) {
QGraphicsEllipseItem *item = new QGraphicsEllipseItem(i*10, i*10, 10, 10);
scene.addItem(item);
}
// 保存图片
QPixmap pixmap = QPixmap::grabWidget(&view, view.rect());
QImage image = pixmap.toImage();
image.fill(Qt::white);
image.save("image.png");
return app.exec();
}
```
注意,在使用QPixmap的grabWidget方法时,需要传入QGraphicsView的rect()作为参数,以获取QGraphicsView上的绘图内容。保存图片时,需要指定保存的文件名及文件格式。涂白时,需要使用QImage的fill方法,并将其传入Qt::white参数。
阅读全文