QPainter 画一条线,加粗

在 Qt 中使用 QPainter 绘制加粗线条可以通过设置画笔(QPen)的宽度实现。以下是完整示例代码和分步解释:

#include <QApplication>
#include <QWidget>
#include <QPainter>

class CustomWidget : public QWidget {
protected:
    void paintEvent(QPaintEvent*) override {
        QPainter painter(this);
        
        // 设置画笔属性(关键步骤)
        QPen pen;
        pen.setWidth(5);        // 设置线条宽度(加粗)
        pen.setColor(Qt::black); // 设置颜色
        painter.setPen(pen);

        // 绘制一条水平线
        painter.drawLine(50, 50, 200, 50);
        
        // 绘制一条垂直线(演示不同方向)
        painter.drawLine(50, 100, 50, 200);
    }
};

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    
    CustomWidget w;
    w.resize(300, 300);
    w.setWindowTitle("加粗线条示例");
    w.show();
    
    return a.exec();
}

关键点说明:

  1. 画笔设置
    • setWidth():控制线条粗细(单位:像素)
    • setColor():设置线条颜色(支持Qt::GlobalColor枚举或RGB值)
    • 可选参数:setCapStyle()(端点样式)、setJoinStyle()(连接点样式)
  2. 坐标系统
    • 原点(0,0)在窗口左上角
    • X轴向右增长,Y轴向下增长
  3. 扩展功能

    // 虚线样式
    pen.setStyle(Qt::DashLine);
    
    // 渐变填充(需配合QBrush)
    QLinearGradient grad(0,0,100,0);
    grad.setColorAt(0, Qt::red);
    grad.setColorAt(1, Qt::blue);
    pen.setBrush(grad);
    
    // 抗锯齿(更平滑的边缘)
    painter.setRenderHint(QPainter::Antialiasing);

运行效果:

  • 显示一个300x300窗口
  • 包含两条5像素宽的黑色线条
  • 水平线从(50,50)到(200,50)
  • 垂直线从(50,100)到(50,200)

可根据需要调整:

  • 坐标值改变线条位置
  • 宽度值改变粗细
  • 颜色值改变线条颜色
  • 添加setRenderHint(QPainter::Antialiasing)获得更平滑的边缘效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值