找回密码
 立即注册
首页 业界区 业界 Qt技巧笔记(九):QPen 画笔类简介及绘图实践指南 ...

Qt技巧笔记(九):QPen 画笔类简介及绘图实践指南

迫蔺 3 天前
Qt技巧笔记(九):QPen 画笔类简介及绘图实践指南
  1. `QPen` 是Qt绘图系统中用于定义线条(如轮廓线,边框线)样式(颜色、宽度、风格等)的类。其构造函数`QPen()`。 是Qt框架中用于定义如何绘制形状轮廓(线条)的一个非常重要的类。它控制`QPainter` 绘制线条、曲线和形状轮廓的外观,它包括线宽、颜色、样式、端点风格和连接风格等。
复制代码
(一)基本属性简介
  1. `QPen`主要用于设置以下属性:
复制代码
主要属性属性功能线条宽度(Color)线条的粗细(像素)线条颜色(Width)支持 QColor、RGB 值或预定义颜色(如 Qt::red)线条样式(Style)如实线、虚线、点线等。端点风格(Cap Style)线条端点的渲染方式(方形、圆形等)。连接风格(Joint Style)多条线段连接处的渲染方式(斜接、圆角等)。画刷 (Brush)实际上,填充线条的颜色是由 QBrush 决定的。如果你设置了一个渐变画刷给 QPen,可以绘制出渐变色的线条。常用样式枚举值:

  • 样条样式(Qt.PenStyle)
    Qt.SolidLine实线Qt.DashLine虚线(由较短的线段组成)。Qt.DotLine点线(由点组成)。Qt.DashDotLine点划线(交替的线段和点)。Qt.DashDotDotLine双点划线。Qt.NoPen不绘制线条(通常用于不需要边框的情况)
  • 端点样式 (Qt.PenCapStyle)

    Qt.FlatCap线条末端是方形的,不覆盖端点坐标。Qt.SquareCap线条末端是方形的,但会覆盖端点坐标(比 FlatCap 稍微长一点)。Qt.RoundCap线条末端是圆形的。
  • 连接样式(Qt.RoundJoinStyle)
    Qt.MiterJoin尖角连接。Qt.BevelJoin平角连接(切角)。Qt.RoundJoin圆角连接。
设置样条样式:
  1. setStyle(Qt::PenStyle style);
复制代码
设置样条宽度
  1. setWidth(int width);      // 整数宽度(默认)
  2. setWidthF(qreal width);   // 浮点宽度(高精度)
复制代码
设置颜色
  1. setColor(const QColor &color);
复制代码
设置端点风格
  1. setCapStyle(Qt::PenCapStyle cap);
复制代码
设置连接风格
  1. setCapStyle(Qt::PenCapStyle cap);
复制代码
始终在创建 QPen 对象后,显式地设置您需要的颜色和宽度。
  1. QPen();  // 默认构造函数(黑色 1px 实线)
  2. QPen(const QColor &color);  // 指定颜色
  3. QPen(const QBrush &brush, qreal width);  // 指定画刷和宽度
  4. QPen(const QBrush &brush, qreal width, Qt::PenStyle style);  // 完整参数
复制代码
(二)示例用法

2.1基本用法
  1. QPainter painter(this);
  2. QPen pen(Qt::blue, 2, Qt::DashLine, Qt::RoundCap, Qt::RoundJoin);
  3. painter.setPen(pen);
  4. painter.drawLine(10, 10, 100, 100);
复制代码
2.2动态修改属性
  1. QPen pen;
  2. pen.setColor(Qt::red);
  3. pen.setWidth(3);
  4. pen.setStyle(Qt::DotLine);
  5. painter.setPen(pen);
  6. painter.drawRect(50, 50, 100, 100);
复制代码
2.3  自定义虚线

[code]QPen pen(Qt::black, 2);QVector pattern;pattern

相关推荐

您需要登录后才可以回帖 登录 | 立即注册