Qt QCustomPlot 取数据,鼠标移动显示

取数据:

for (int i = 0;i < ui->plot->graph(0)->dataCount();i++) {
      float x = ui->plot->graph(0)->data()->at(i)->key;
      float y = ui->plot->graph(0)->data()->at(i)->value;
      qDebug() << x << y << endl;
}

鼠标移动:

复制代码
connect(ui->plot, SIGNAL(mouseMove(QMouseEvent*)), this, SLOT(myMoveEvent(QMouseEvent*)));

void MainWindow::myMoveEvent(QMouseEvent *event) {
    //获取鼠标坐标,相对父窗体坐标
    int x_pos = event->pos().x();
    int y_pos = event->pos().y();

    //鼠标坐标转化为CustomPlot内部坐标
    float x_val = ui->plot->xAxis->pixelToCoord(x_pos);
    float y_val = ui->plot->yAxis->pixelToCoord(y_pos);

    QString str,strToolTip;
    str = QString::number(x_val, 10, 3);
    strToolTip += "x: ";
    strToolTip += str;
    strToolTip += "\n";

    for (int i = 0;i < ui->plot->xAxis->graphs().count();i++) {
        //获得x轴坐标位置对应的曲线上y的值
        float y = ui->plot->graph(i)->data()->at(x_val)->value;
        str = QString::number(y);
        strToolTip += "y" + QString::number(i) + ":";
        strToolTip += str;
        strToolTip += "\n";
    }
    QToolTip::showText(cursor().pos(), strToolTip, ui->plot);
}
复制代码

 

posted @   一夜梦想  阅读(7137)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示