0
点赞
收藏
分享

微信扫一扫

QT QPainter的几个绘图效果实践

sunflower821 2024-03-13 阅读 11

QT QPainter的几个绘图效果实践

在使用绘图对象需要引用QPainter

#include "QPainter"
#include "QDebug"

1.一般显示

QPainter painter1(this);
QPixmap pix1;
pix1.load(":images/butterfly.png");
painter1.drawPixmap(0,0,100,100,pix1);

QT QPainter的几个绘图效果实践_QPainter

2.图片移动

QPainter painter2(this);
QPixmap pix2;
pix2.load(":images/butterfly.png");
painter2.drawPixmap(0,0,100,100,pix2);
painter2.translate(100,100); //将(100,100)设为坐标原点
painter2.drawPixmap(0,0,100,100,pix2);

QT QPainter的几个绘图效果实践_QT_02

3.图片缩放scaled

QPainter painter3(this);
QPixmap pix3;
pix3.load(":images/butterfly.png");
painter3.drawPixmap(0,0,100,100,pix3);

qreal width = pix3.width(); //获得图片的宽和高
qreal height = pix3.height();

pix3 = pix3.scaled(width*3,height*3,Qt::KeepAspectRatio);
//将图片的宽和高都扩大3倍,并且在给定的矩形内保持宽高的比值
painter3.drawPixmap(100,200,pix3);

QT QPainter的几个绘图效果实践_QT_03

4.图片旋转translate

QPainter painter4(this);
QPixmap pix4;
pix4.load(":images/butterfly.png");
qDebug()<<"宽度:"<<pix4.width();
qDebug()<<"高度:"<< pix4.height();
painter4.translate(pix4.width()/2,pix4.height()/2); //让图片的中心作为旋转的中心
painter4.rotate(90); //顺时针旋转90度
// painter4.translate(-60,-60); //使原点复原
painter4.translate(-(pix4.width()/2),-(pix4.height()/2)); //使原点复原
painter4.drawPixmap(0,0,pix4.width(),pix4.height(),pix4);

QT QPainter的几个绘图效果实践_QT_04

5.图片扭曲shear

横向扭曲

QPainter painter5(this);
QPixmap pix5;
pix5.load(":images/butterfly.png");
painter5.drawPixmap(0,0,100,100,pix5);
painter5.shear(0.5,0); //横向扭曲
painter5.drawPixmap(100,0,100,100,pix5);
painter5.drawPixmap(200, 0,100,100,pix5);

QT QPainter的几个绘图效果实践_QT_05

纵向扭曲

QPainter painter6(this);
QPixmap pix6;
pix6.load(":images/butterfly.png");
painter6.drawPixmap(0,0,100,100,pix6);
painter6.shear(0,0.5); //纵向扭曲
painter6.drawPixmap(100,0,100,100,pix6);
painter6.drawPixmap(200, 0,100,100,pix6);

QT QPainter的几个绘图效果实践_QT_06

举报

相关推荐

0 条评论