#include "widget.h"
#include "ui_widget.h"
#include <QPixmap>
#include <QPainter>
#include <QImage>
#include <QPicture>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
// //Pixmap绘图设备 专门为平台做了显示的优化
// QPixmap pix(300,300);
// //填充颜色 默认背景黑色
// pix.fill(Qt::white);
// //声明画家
// QPainter painter(&pix);
// //匿名函数
// painter.setPen(QPen(Qt::green));
// painter.drawEllipse(QPoint(150,150),100,100);
// //保存
// pix.save("E:/pix.png");
//QImage 绘图设备 可以对像素进行访问
// QImage img(300,300,QImage::Format_RGB32);
// img.fill(Qt::white);
// //声明画家
// QPainter painter(&img);
// //匿名函数
// painter.setPen(QPen(Qt::blue));
// painter.drawEllipse(QPoint(150,150),100,100);
// //保存
// img.save("E:/img2.png");
//QPicture 绘图设备 可以记录和重现绘图指令
QPicture pic;
QPainter painter;
//开始往pic上画
painter.begin(&pic);
//匿名函数
painter.setPen(QPen(Qt::cyan));
painter.drawEllipse(QPoint(150,150),100,100);
//结束画画
painter.end();
//保存磁盘
pic.save("E:/pic.zt");
//重现QPicture的绘图指令
}
void Widget::paintEvent(QPaintEvent *event)
{
//重现QPicture的绘图指令
QPicture pic;
QPainter painter(this);
pic.load("E:/pic.zt");
painter.drawPicture(0,0,pic);
}
Widget::~Widget()
{
delete ui;
}
QPicture可以重现绘图指令,用于将之前画的图加载出来