QPainter painter(this);
painter.drawLine(0,0,100,100);//画线
QPen pen; //画笔
pen.setColor(QColor(255,0,0));
QBrush brush(QColor(0,255,0,125)); //画刷
brush.setStyle(Qt::HorPattern);//设置画刷填充风格
painter.setPen(pen); //添加画笔
painter.setBrush(brush); //添加画刷
painter.drawRect(100,100,200,200); //绘制矩形
//矩形渐变
QLinearGradient linearGradient(100,150,300,150); //从点(100,150)开始到点(300,150)结束,确定一条直线
linearGradient.setColorAt(0,Qt::red);
linearGradient.setColorAt(0.2,Qt::black);
linearGradient.setColorAt(0.4,Qt::yellow);
linearGradient.setColorAt(0.6,Qt::white);
linearGradient.setColorAt(0.8,Qt::green);
linearGradient.setColorAt(1,Qt::blue); //将直线开始点设为0,终点设为1,然后分段设置颜色
painter.setBrush(linearGradient);
painter.drawRect(100,100,200,100); //绘制矩形,线性渐变线正好在矩形的水平中心线上
//圆形渐变
QRadialGradient radialGradient(200,100,100,200,100); //其中参数分别为圆形渐变的圆心(200,100),半径100,和焦点(200,100) //这里让焦点和圆心重合,从而形成从圆心向外渐变的效果
radialGradient.setColorAt(0,Qt::black);
radialGradient.setColorAt(1,Qt::yellow); //渐变从焦点向整个圆进行,焦点为起始点0,圆的边界为1
QPainter painter(this);
painter.setBrush(radialGradient);
painter.drawEllipse(100,0,200,200); //绘制圆,让它正好和上面的圆形渐变的圆重合
//圆锥渐变
QConicalGradient conicalGradient(50,50,0); //圆心为(50,50),开始角度为0
conicalGradient.setColorAt(0,Qt::green);
conicalGradient.setColorAt(1,Qt::white); //从圆心的0度角开始逆时针填充
QPainter painter(this);
painter.setBrush(conicalGradient);
painter.drawEllipse(0,0,100,100);
QFont font(“Arial”,20,QFont::Bold,true); //设置字体的类型,大小,加粗,斜体
font.setUnderline(true); //设置下划线
font.setOverline(true); //设置上划线
font.setCapitalization(QFont::SmallCaps); //设置大小写
font.setLetterSpacing(QFont::AbsoluteSpacing,5); //设置间距
QPainter painter(this);
painter.setFont(font); //添加字体
QRectF ff(100,100,300,200); //画长方形
painter.drawRect(ff);
painter.setPen(QColor(Qt::red));
painter.drawText(ff,Qt::AlignCenter,"yafeilinux");//写字
QPainterPath path; //QPainterPath类
path.addEllipse(100,100,50,50); //添加椭圆
path.lineTo(200,200); //添加直线
path.translate(100,0);//转换坐标原点
QPainter painter(this);
painter.setPen(Qt::green);
painter.setBrush(Qt::yellow);
painter.drawPath(path);
QPainterPath path;
path.addRect(50,50,40,40); //添加矩形
path.moveTo(100,100); //移动当前点位置
path.lineTo(200,200);//绘制直线
QPainter painter(this);
QPixmap pix; //QPixmap类
pix.load("images/linux.jpg");//加载图片
painter.drawPixmap(0,0,100,100,pix); //绘制图片
painter.translate(100,100); //将(100,100)设为坐标原点
painter.drawPixmap(0,0,100,100,pix);//绘制第二张图片
pix = pix.scaled(width*2,height*2,Qt::KeepAspectRatio);
//将图片的宽和高都扩大两倍,并且在给定的矩形内保持宽高的比值
//旋转图片
QPainter painter(this);
QPixmap pix;
pix.load("images/linux.jpg");
painter.translate(50,50); //让图片的中心作为旋转的中心
painter.rotate(90); //顺时针旋转90度
painter.translate(-50,-50); //使原点复原
painter.drawPixmap(0,0,100,100,pix);
QPainter painter(this);
QPixmap pix;
pix.load("images/linux.jpg"); //加载图片
painter.drawPixmap(0,0,100,100,pix); //绘制图片
painter.shear(0.5,0); //横向扭曲
painter.drawPixmap(100,0,100,100,pix);//绘制扭曲后的图片
painter.shear(0,0.5); //纵向扭曲
painter.shear(0.5,0); //横纵扭曲
translate()//平移变换;
scale()//比例变换;
rotate()//旋转变换;
shear()//进行扭曲变换。
QPainter painter(this);
painter.save(); //保存坐标系状态
painter.translate(100,100);
painter.drawLine(0,0,50,50);
painter.restore(); //恢复以前的坐标系状态
painter.drawLine(0,0,50,50);