遍历QLineSeries项及其点

时间:2019-03-15 04:47:11

标签: c++ qt qt5

我需要对QLineSeries进行排序,并按其y轴指向其中的点。我是c ++和qt的新手,所以我尝试了

QLineSeries* series = lineSeriesMap.value(key);
qSort(series->points().begin()->y(),series->points().end()->y());

但这给我illegal indirection处的qalgorithms.h错误

我知道这可能很容易,但是由于工作原因,我需要这样做

2 个答案:

答案 0 :(得分:0)

您应该做的是获得积分的副本,订购积分并替换初始系列中的积分

QVector<QPointF> points = series->pointsVector();
std::sort(points.begin(), points.end(), [](const QPointF & p1, const QPointF & p2) {
    return p1.y() > p2.y();
});
series->replace(points);

答案 1 :(得分:0)

C++20

auto points { series->pointsVector() }; // move ctr
std::ranges::sort(points, {}, &QPointF::y); // #include <ranges>
series->replace(points);