Qt 曲线图———QChart制作图表

///图表绘制

QValueAxis* x = new QValueAxis;
QValueAxis* y = new QValueAxis;
x->setRange(0,10);//范围
x->setTitleText("x轴");
x->setGridLineVisible(true);
x->setTickCount(11);//分多少格
x->setMinorTickCount(4);//每个格分几个小格
//y 同样设置

QChart *chart = new QChart();
chart->createDefaultAxes();//设置默认坐标系,必须设置坐标系

QChartview * chartView=new QChartview(chart);
chartView->setRanderHint(QPainter::Antialiasing);//抗锯齿渲染
QLineSeries* series = new QLineSeries();
series->setPen(QPen(Qt::red,1,Qt::SolidLine));
//series->setPointsVisible(true);
series->append(QPointF(1,1));
series->append(QPointF(2,2));
//.........

chart->addSeries(series);//
chart->setAxisX(x,series);//设置坐标信息到图表和线,之前,必须将线添加到图表中
chart->setAxisX(y,series);

//鼠标显示坐标值
connect(series, SIGNAL(hovered(QPointF, bool)), this, SLOT(showXY(QPointF, bool)));

showXY(QPointF pt, bool state)
{
 if (state)
 {
  if (!m_label)
  {
   m_label = new QLabel();
  }
m_label->setText(QString::number(pt.x(), 'f', 2) + "," + QString::number(pt.y() * 1000, 'f', 2));
  m_label->setParent(chartView);
  QPoint curPos = mapFromParent(QCursor::pos());
  m_label->move(curPos.x() - m_label->width() / 2, curPos.y() - m_label->height() * 1.5);//移动数值,显示在中间
  m_label->show();
}
 else
  m_label->hide();
  }

``
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值