从零开始学Qt(57):一文读懂QPen的使用

从零开始学Qt(57):一文读懂QPen的使用

首页休闲益智画线奇兵更新时间:2024-05-09

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