QPicture的特点:
本身也是一个绘图设备,但他也可以理解为一个绘图容器,里面保存绘图的记录和重绘制的指令。
QPicture存储的形式是二进制形式,也就是说无法双击打开picture文件,如果想看这个picture文件必须重新加载。
示例代码:
QPicture pic;
QPainter painter;
painter.begin(&pic);//里面的参数是绘图设备
painter.setPen(Qt::red);
painter.drawEllipse(QPoint(100,100),50,50);
painter.end();//在保存之前要先结束
pic.save("E://pic.jpg");//注意这里的扩展名可以随便写
运行之后发现pic.jpg文件打不开,因为他是二进制文件。
打开的方法:
void Widget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPicture pic;
pic.load("E://pic.jpg");
painter.drawPicture(0,0,pic);
}
QBitmap,从名字中可以知道他是一个绘制位图的画布,所以绘制出来的图片是黑白图片
示例代码:
QBitmap bm(400,300);
QPainter painter(&bm);
painter.drawEllipse(QPoint(100,100),50,50);
QBitmap也可以用于将彩色图片转化为黑白图片打开
void Widget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QBitmap bm;
bm.load("E://42.jpg");
painter.drawPixmap(bm);
}