画笔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官方文档举例: