///图表绘制
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();
}
``
Qt 曲线图———QChart制作图表
最新推荐文章于 2024-05-05 17:26:18 发布