文章目录
1、基础使用
void Widget::paintEvent(QPaintEvent *event)
{
// 创建画家
QPainter painter(this);
// 设置画笔
QPen pen(QColor(255,0,0));
// 设置画笔款宽度
pen.setWidth(10);
pen.setStyle(Qt::DotLine); // 点点
painter.setPen(pen);
// 设置抗锯齿能力 效率比较低
painter.setRenderHint(QPainter::Antialiasing);
// 保存当前状态
painter.save();
// 移动画家
// painter.translate(100,0);
// 取出画家
painter.restore();
// 画刷,封闭的图案填充颜色的
QBrush brush(Qt::green);
brush.setStyle(Qt::Dense4Pattern);
painter.setBrush(brush);
// 画线
painter.drawLine(QPoint(0,0),QPoint(100,100));
// 圆心,rx,ry
painter.drawEllipse(QPoint(100,100),50,50);
// 画矩形从x,y 20 20 画一个50宽高的矩形
painter.drawRect(QRect(200,200,50,50));
// 写字
painter.drawText(QRect(300,300,100,100),"hello world");
// 画图片
painter.drawPixmap(300,300,QPixmap("D:\\Qt_project_5.9.6\\Testenvent\\1.png"));
}
2、QImage使用
QImage img;
img.load("D:\\Qt_project_5.9.6\\Testenvent\\1.png");
QPainter painter(this);
// 修改像素
for(int i=100;i<150;i++)
{
for(int j=100;j<150;j++)
{
QRgb value = qRgb(255,0,0);
img.setPixel(i,j,value);
}
}
painter.setPen(QPen(Qt::green));
//painter.drawEllipse(QPoint(0,0),100,100);
painter.drawImage(0,0,img);
3、QPixmap
QPixmap pix;
pix.load("D:\\Qt_project_5.9.6\\Testenvent\\1.png");
QPainter painter(this);
painter.setPen(QPen(Qt::green));
painter.drawPixmap(0,0,pix);
4、QPicture
先将绘制的图形保存到文件中
QPicture pic;
QPainter painter;
painter.begin(&pic);
painter.setPen(Qt::green);
painter.drawEllipse(200,200,50,50);
painter.end();
pic.save("./pic.zt");
然后将其重现
QPicture pic;
pic.load("./pic.zt");
QPainter painter(this);
painter.drawPicture(QPoint(20,20),pic);