首页 > 解决方案 > 如何使 QtChart 不在某些范围内绘制折线图?

问题描述

下面的代码画了从2020年到2023年的线,穿过2022年。关键是,如何让QChartView忽略2022年,即从2021年立即画线到2023年,或者换句话说,从X中删除2022轴?

auto series = new QLineSeries();
series->append(QDateTime(QDate(2020, 1, 1)), 100);
series->append(QDateTime(QDate(2021, 1, 1)), 200);
series->append(QDateTime(QDate(2023, 1, 1)), 300);
series->append(QDateTime(QDate(2023, 1, 1)), 200);


QDateTimeAxis *axisX = new QDateTimeAxis;
axisX->setTickCount(20);
axisX->setLabelsAngle(-90);
axisX->setFormat("dd.MM.yyyy hh:mm:ss");

chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);

QValueAxis *axisY = new QValueAxis;
axisY->setTickCount(30);
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);

chart->setTitle(m_stock->name());

m_chart_view->setChart(chart);

标签: qtqtcharts

解决方案


最终找到解决方案。应该使用 QBarCategoryAxis 而不是 QDateTimeAxis。


推荐阅读