QtCharts 数据游标 鼠标选中数据 散点图

本文介绍了如何使用QtCharts库创建散点图并实现数据游标功能。通过包含QtCharts头文件,添加散点数据,设置图表和坐标轴范围,以及利用QGraphicsSimpleTextItem显示坐标值,当鼠标点击图表时,通过信号与槽机制实现数据点的坐标跟随显示。
摘要由CSDN通过智能技术生成

QtCharts 数据游标

鼠标左键选中数据后,显示该点的坐标值,效果图如下。
QtCharts数据游标

实现方法

利用QtCharts实现散点图的绘制,数据游标功能。

  • 包含头文件,声明命名空间
#include <QtCharts>
QT_CHARTS_USE_NAMESPACE
  • pro文件中添加
QT += charts

绘制散点图

    QChart *chart =ui->chartwindow->chart();
    chart->setTitle("y=sin(x)");            //设置图表标题
    chart->setTitleFont(QFont("Times",16)); //设置标题字体
    chart->legend()->setVisible(false);     //隐藏图例

    QScatterSeries *series = new QScatterSeries();
    QPen pen;
    pen.setColor(Qt::blue);
    pen.setWidth(1);
    series->setPen(pen);

    for (double i=-8;i<=8;i+=1)
    {
        double x = i;
        double y = sin(i);
        series->append(x,y);
    }

    chart->addSeries(series);
    chart->createDefaultAxes();
    chart->axisX()->setRange(-9,9);//设置坐标轴范围
    chart->axisY()->setRange(-2,2);

实现数据游标功能

利用QGraphicsSimpleTextItem显示数据点的坐标值,利用信号与槽的机制实现数据游标的鼠标跟随与显示。

  • 创建数据游标文本
QGraphicsSimpleTextItem *cursorData;
cursorData = new QGraphicsSimpleTextItem(chart);
  • 使用到的信号
void QXYSeries::clicked(const QPointF &point)

信号含义:当用户单击图表中的点触发鼠标事件时,会发出此信号。

  • 实现槽函数
void DataCursorWidget::showCursorData(const QPointF &point){
    QPoint curPos = mapFromGlobal(QCursor::pos());
    cursorData->setPos(curPos.x(),curPos.y());
    cursorData->setText(QString("%1,%2").arg(point.x()).arg(point.y()));
}
  • 信号与槽函数的连接
connect(series, &QScatterSeries::clicked, this,&DataCursorWidget::showCursorData);
  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值