QPainter下的drawPath()方法:
原型:
void drawPath(constQPainterPath&path);
重点说一下:QPainterPath
用途:
它是由一些图形如曲线、矩形、椭圆组成的对象。
主要的用途是,能保存已经绘制好的图形。实现图形元素的构造和复用;图形状只需创建一次,然后调用QPainter::drawPath() 函数多次绘制。
painterpath 可以加入闭合或不闭合的图形( 如:矩形、椭圆和曲线) 。QPainterPath 可用于填充,描边,clipping 。
使用方法:
QPainterPath 一旦创建,直线和曲线都可以被添加入path ,通过lineTo(),arcTo(),cubicTo() 和 quadTo() 函数。currentPosition() 是最后一次绘制后的“结束点”(或初始点)。使用moveTo() 移动currentPosition() 而不会添加任何元素。moveTo() 隐含的开始一个新subpath ,并且闭合前一个。 一个path 添加到另一个path 用connectPath() 。它默认是从原点(0 ,0 )开始绘图,可以使用moveTo ()改变绘图的开始位置。
QPainterPath path;
//移动到
path.moveTo(10,10);
path.cubicTo(210,10,110,110,210,210);
path.cubicTo(10,210,110,110,10,10);
//添加椭圆
path.addEllipse(QPoint(110,110),100,50);
//添加矩形
path.addRect(65,65,90,90);
//设置填充规则
path.setFillRule(Qt::OddEvenFill);
//构建绘制工具
QPainter painter(this);
//设置画笔
painter.setPen(QPen(Qt::red,2,Qt::SolidLine,Qt::FlatCap));
//设置填充
painter.setBrush(QBrush(Qt::green));
//添加矩形
painter.fillRect(10,10,200,200,Qt::white);
//绘制path
painter.drawPath(path);