• 大小: 51KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: 其他
  • 标签: plot  

资源简介

这里解决一个使用图表的都会碰到的问题–跟随鼠标显示值,在QCustomPlot里非常简单,它早就给出了解决方案-QCPItemTracer

资源截图

代码片段和文件信息


void MEMSCurve::MEMSCurve()
{
//跟踪器
m_xTracer = new MyTracer(m_custPlot MyTracer::XAxisTracer m_custPlot);//x轴
m_tracer1 = new MyTracer(m_custPlot MyTracer::DataTracer m_custPlot);
m_tracer2 = new MyTracer(m_custPlot MyTracer::DataTracer m_custPlot);
m_lineTracer = new MyTracer(m_custPlot MyTracer::CrossLine m_custPlot);//直线

connect(m_custPlot SIGNAL(mouseMove(QMouseEvent*)) this SLOT(myMouseMoveEvent(QMouseEvent*)));
}


void MEMSCurve::myMouseMoveEvent(QMouseEvent* event)
{
int x_pos = event->pos().x();
int y_pos = event->pos().y();

float x_val = EMSTabPage.m_plot.m_custPlot->xAxis->pixelToCoord(x_pos);
float y_val = EMSTabPage.m_plot.m_custPlot->yAxis->pixelToCoord(y_pos);
EMSTabPage.m_plot.m_xTracer->updatePosition(x_val y_val);

auto iter = EMSTabPage.m_plot.m_custPlot->graph(0)->data()->findBegin(x_val);
double value1 = iter->mainValue();
iter = EMSTabPage.m_plot.m_custPlot->graph(1)->data()->findBegin(x_val);
double value2 = iter->mainValue();

EMSTabPage.m_plot.m_tracer1->updatePosition(x_val value1);
EMSTabPage.m_plot.m_tracer2->updatePosition(x_val value2);

EMSTabPage.m_plot.m_lineTracer->updatePosition(x_val y_val);

ui->custPlot->replot();//曲线重绘
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1238  2018-04-16 16:26  MyTracer\main.cpp

     文件       4471  2018-04-16 16:22  MyTracer\MyTracer.cpp

     文件        977  2018-04-16 15:56  MyTracer\MyTracer.h

     文件        137  2018-04-16 16:30  MyTracer\说明.txt

     文件      77676  2018-04-16 16:27  MyTracer\运行结果.PNG

     目录          0  2018-04-16 16:28  MyTracer

----------- ---------  ---------- -----  ----

                84499                    6


评论

共有 条评论