qt QCustomplot 用QCPItemStraightLine画参考线,阈值线,水平线

想要在两个坐标系下都画上如下参考线(阈值线,或者 水平线), 这个参考线随着坐标轴的拖拽能够一直显示

 我们找到了QCPItemStraightLine,该类能够画一条无限延伸的直线,通过下面的代码能够实现在A坐标系画一条水平线,但不能在B坐标系画直线。

    m_pHorReffer = new QCPItemStraightLine(this);
    m_pHorReffer->setPen(QPen(Qt::red, 3, Qt::DotLine));
    m_pHorReffer->point1->setCoords( -10,  750);//设置点1的坐标
    m_pHorReffer->point2->setCoords( -30,  750);//设置点2的坐标  

解决方案

 

参考官网: Qt Plotting Widget QCustomPlot - Itemsicon-default.png?t=MBR7https://www.qcustomplot.com/index.php/tutorials/items

参考:原文链接:https://blog.csdn.net/qq21497936/article/details/124567140

项剪切
  默认情况下,项目被剪裁到主轴矩形,这意味着它们仅在主轴矩形内可见。要使项目在该axis rect外部可见,请通过调用setClipToAxisRect(false) 禁用剪裁。
  另一方面,如果希望将项目剪裁到不同的轴rect,可以通过setClipAxisRect指定它。项目的clipAxisRect属性仅用于剪裁行为,原则上与项目可能通过其位置成员绑定到的坐标轴无关(请参见QCPItemPosition::SetAxis)。但是,通常情况下,用于剪裁的轴rect也包含用于项目位置的轴。

根据上面的代码如下,就能实现在B坐标系画参考线的目的了


  m_pBHorReffer = new QCPItemStraightLine(this);
    m_pBHorReffer->setPen(QPen(Qt::red, 3, Qt::DotLine));
    //垂直参考线,就是两点一线
    //m_pHorReffer_DG->setClipToAxisRect(false);//裁剪,让外部也要看到
    m_pBHorReffer->setClipAxisRect(m_pCPAxisRect[1]);//设置裁剪的坐标轴
    m_pBHorReffer->point1->setAxes(m_pCPAxisRect.at(1)->axis(QCPAxis::atBottom),m_pCPAxisRect.at(1)->axis(QCPAxis::atLeft));//绑定坐标
    m_pBHorReffer->point2->setAxes(m_pCPAxisRect.at(1)->axis(QCPAxis::atBottom),m_pCPAxisRect.at(1)->axis(QCPAxis::atLeft));
    m_pBHorReffer->point1->setCoords( -10,  900);//设置点1的坐标
    m_pBHorReffer->point2->setCoords( -30,  900);//设置点2的坐标

官网:Qt Plotting Widget QCustomPlot - Introductionhttps://www.qcustomplot.com/index.php/introduction

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值