【Qt之·绘图·类QPainterPath】

系列文章目录



前言


一、描述

  • QPainterPath类为绘画操作提供了一个容器,可以构建和重用图形形状。
  • QPainterPath对象可以构造为具有给定起点的空路径,或构造为另一个QPainterPath对象的副本。,创建后,可以使用lineTo()、arcTo()、cubicTo()、quadTo()函数将直线和曲线添加到路径中。

二、成员函数

1.currentPosition()

函数返回最后添加的子路径的终点(或初起始点)

2.void addEllipse(const QRectF &boundingRectangle)

添加一个椭圆,参数为椭圆的外接矩形 / 参数为椭圆的外接矩形的中心和宽高。

3.void addPath(const QPainterPath &path)

添加一个路径作为闭合的子路径。

4.void addPolygon(const QPolygonF &polygon)

添加多边形作为非闭合子路径。添加多边形后的当前位置是多边形中的最后一个点。要将线画回到第一点,请使用closeSubpath()函数。

5.void addRect(const QRectF &rectangle)

将给定的矩形作为闭合的子路径添加到此路径。将该矩形作为一组顺时针的线添加。添加矩形后,绘制路径的当前位置在矩形的左上角。

6.void addRegion(const QRegion &rion)

添加一个区域,区域里可能有多个矩形。

7.void :addRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)

添加圆角矩形。xRadius和yRadius指定圆角矩形角的椭圆的半径。

当mode为Qt::RelativeSize时,xRadius和yRadius分别以矩形宽度和高度的一半的百分比指定,并且应在0.0到100.0之间。

Qt::SizeMode:指定相对于指定边界矩形的尺寸的矩形角半径模式
Qt::AbsoluteSize:使用绝对值指定大小。
Qt::RelativeSize:使用百分比度量。

8.void addText(const QPointF &point, const QFont &font, const QString &text)

添加文本,文本基线的左端位于由参数1指定的点。

9.void arcTo(const QRectF &rectangle, qreal startAngle, qreal sweepLength)

创建一个弧形。弧形是椭圆的一部分,参数1是弧形所在椭圆的外接矩形。该弧从指定的startAngle开始,沿逆时针方向延伸sweepLength度。角度以度为单位。 可以使用负角指定顺时针圆弧。添加圆弧后,当前位置是弧形中的最后一个点。要将线画回到第一点,请使用closeSubpath()函数。

10.QRectF boundingRect()

路径的外接矩形。

11.void clear()

清空路径。

12.void closeSubpath()

闭合子路径。通过在子路径的开头绘制一条线来关闭当前子路径,从而自动开始新路径。新路径的当前点是(0,0)。

13.void connectPath(const QPainterPath &path)

通过添加一条从当前路径的最后一个元素到该路径的第一个元素的线,将给定路径连接到该路径。

14.bool contains(const QPointF &point) const
  bool contains(const QRectF &rectangle) const
  bool contains(const QPainterPath &p) const

是否包含

15.QPointF currentPosition()

获取路径当前点。

16.QPainterPath intersected(const QPainterPath &p)

获取路径交集。

17.bool intersects(const QRectF &rectangle) / bool intersects(const QPainterPath &p)

路径是否与路径/矩形相交。

18.qreal length()

返回当前路径的长度。

19.void lineTo(const QPointF &endPoint)

从当前位置到给定端点添加一条直线。绘制直线后,当前位置将更新为直线的终点。

20.void moveTo(const QPointF &point)

将当前点移动到给定点,隐式启动新的子路径并关闭上一个子路径。

21.void setFillRule(Qt::FillRule fillRule)

设置路径填充规则。

三、重载运算符

运算符说明
!=和==判断两路径是否相同
&获取两路径的交集
+获取两路径的并集
-获取两路径的差集
|获取两路径的并集,与“+”一样

总结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值