Qt绘图之画笔QPen

画笔QPen

QPainter在绘制时会有一个默认的画笔,但通常我们都会自定义一个画笔设置进去

画笔主要作用于画出来的轮廓

QPen相关API

画笔宽度

获取和设置画笔的宽度(就是设置了画出来的线条的粗细)

//宽度为整数
int width() const;
void setWidth(int width);

//宽度可为小数
qreal widthF() const;
void setWidthF(qreal width);

画笔颜色

获取和设置画笔的颜色

QColor color() const;
void setColor(const QColor &color);

样式

获取和设置画笔的样式

Qt::PenStyle style() const;
void setStyle(Qt::PenStyle style);

Qt::PenStyle是一个枚举,有6种样式(默认是Qt::PenStyle::SolidLine):

  • Qt::PenStyle::SolidLine(实线)

  •  Qt::PenStyle::DotLine(点线)

  •  Qt::PenStyle::DashLine(虚线)

  •  Qt::PenStyle::DashDotLine(点划线)

  •  Qt::PenStyle::DashDotDotLine

  •  Qt::PenStyle::CustomDashLine(自定义虚线样式)

需要搭配下面的代码来设置具体的虚线样式:

//指定笔的样式为自定义虚线
pen.setStyle(Qt::PenStyle::CustomDashLine);
//需要搭配下面的方法使用
//一个绘画周期内,第一段长度为1,第二段长度为8,每一段之间的间隔为5
QList<qreal> custom_dash_line;
qreal spacer=5;//线段之间的间隔
custom_dash_line<<1<<spacer<<8<<spacer;
//该方法设置自定义的虚线样式
pen.setDashPattern(custom_dash_line);

Qt官方文档举例:

  • 还可以指定为Qt::PenStyle::NoPen(相当于没有了画笔,即没有了轮廓,画不出东西

连接

即画出来的线条拐角处的样式

获取和设置画笔的Join样式

Qt::PenJoinStyle joinStyle() const;
void setJoinStyle(Qt::PenJoinStyle style)

Qt::PenJoinStyle是一个枚举,有3种样式(默认是Qt::PenJoinStyle::BevelJoin): 

  • Qt::PenJoinStyle::BevelJoin

  •  Qt::PenJoinStyle::MiterJoin

  • Qt::PenJoinStyle::RoundJoin

Qt官方文档举例:

末端

即非封闭图形两端的样式

获取和设置画笔的Cap样式

Qt::PenCapStyle capStyle() const;
void setCapStyle(Qt::PenCapStyle style)

Qt::PenCapStyle是一个枚举,有3种样式(默认是Qt::PenCapStyle::FlatCap): 

  •  Qt::PenCapStyle::FlatCap

  • Qt::PenCapStyle::SquareCap(和上面的区别很小,仅仅是下面的末端长了一点)

  • Qt::PenCapStyle::RoundCap

Qt官方文档举例:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值