QT开发中文网

qpainter画虚线,并设置虚线密度

在 Qt 中使用 QPainter 绘制虚线,并设置虚线的密度(即虚线的长度和间隔),可以通过使用 QPensetDashPattern() 方法来实现。下面是一个示例代码,演示了如何自定义虚线的密度:

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

class MyWidget : public QWidget {
protected:
    void paintEvent(QPaintEvent *event) override {
        QPainter painter(this);

        // 设置画笔颜色
        QPen pen(Qt::black);
        pen.setWidth(2); // 设置线宽
        
        // 设置自定义的虚线模式:每段长度为5个像素,间隔为3个像素
        QVector<qreal> dashPattern;
        dashPattern << 5 << 3; // 第一段长度5,第二段间隔3
        pen.setDashPattern(dashPattern);
        
        painter.setPen(pen);

        // 画一条自定义密度的虚线
        painter.drawLine(10, 30, 200, 30); // 从(10, 30)到(200, 30)
    }
};

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    
    MyWidget widget;
    widget.resize(220, 60);
    widget.show();

    return app.exec();
}

代码说明:

  1. 创建一个自定义窗口类:我们继承了 QWidget 并重写了 paintEvent 方法。
  2. 设置画笔
    • 创建一个 QPen 对象并设置其颜色和宽度。
    • 使用 setDashPattern() 方法传入一个 QVector<qreal> 来定义虚线样式,这里设定的是每段长度为 5 像素,间隔为 3 像素。
  3. 绘制虚线:调用 drawLine() 方法绘制一条从 (10, 30) 到 (200, 30) 的虚线。

通过调整 dashPattern 中的值,你可以控制虚线的长度和间隔,实现不同风格的虚线效果。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://qt.0voice.com/?id=13312

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?