QPen用于绘图时对线条进行设置,主要包括线宽、颜色、线型等,下面是QPen类的主要接口函数。通常一个设置函数都有一个对应的读取函数,例如setColor()用于设置画笔颜色,对应的读取画笔颜色的函数为color(),这里仅列出设置函数(省略了函数参数中的const关键字)。
创建QPen的代码如下:
QPainter painter(this);
QPen pen(Qt::green, 3, Qt::DashDotLine, Qt::RoundCap, Qt::RoundJoin);
painter.setPen(pen);
上述代码等同于
QPainter painter(this);
QPen pen;
pen.setStyle(Qt::DashDotLine);
pen.setWidth(3);
pen.setBrush(Qt::green);
pen.setCapStyle(Qt::RoundCap);
pen.setJoinStyle(Qt::RoundJoin);
painter.setPen(pen);
线条颜色和宽度的设置无需多说,QPen影响线条特性的另外3个主要属性是线条样式(style)、 端点样式(capStyle)和连接样式(joinStyle)。
线条样式setStyle(Qt::PenStyle style)函数用于设置线条样式,参数是一个枚举类型Qt::PenStyle的常量, 几种典型的线条样式的绘图效果如下图所示。QtPenStyle类型还有一个常量Qt::NoPen表示不绘制线条。
各种样式的线条
除了几种基本的线条样式外,用户还可以自定义线条样式(Qt::CustomDashLine),自定义线条样式时需要用到setDashOffset()和setDashPattem()函数。上图中自定义线条的代码为,
QPen pen;
QVector<qreal> dashes;
qreal space = 4;
dashes << 1 << space << 3 << space << 9 << space
<< 27 << space << 9 << space;
pen.setDashPattern(dashes);
线条端点样式
setCapStyle(Qt::PenCapStyle style)函数用于设置线条端点样式,参数是一个枚举类型 QPenCapStyle的常量,该枚举类型的3种取值及其绘图效果如下图所示。
各种线条端点样式
setJoinStyle(Qt::PenJoinStyle style)函数用于设置线条连接样式,参数是一个枚举类型 Qt::PenJoinStyle的常量,该枚举类型的取值及其绘图效果如下图所示。
各种线条连接样式
默认样式是Qt::BevelJoin。应用Qt::MiterJoin 样式时,可以使用setMiterLimit()函数指定斜接连接可以从连接点延伸多远。miterLimit()必须以笔宽为单位指定。默认miter limit为2,即为笔宽度的两倍。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved