我正在尝试遍历Qt 5.5 QtCharts LineSeries 类型中的点,该类型继承自XYSeries

我尝试了一个简单的for -loop,但无法找到确定该系列中点数的方法:

for (var i=0; i < my_line_series.contentItem.children.length; ++i) {
    // do something with the index
}

不幸的是,似乎以下都不是LineSeries的成员:
  • contentItem
  • children
  • length
  • count
  • size

  • 另外,我可以尝试遍历该系列,直到没有给定索引处的访问点,但是用于访问给定索引处的点的方法at(),如果索引无效,则返回(0,0),并且完全有可能是我的(0,0)中真正的LineSeries点。

    ....那么有可能在纯QML 中执行此迭代(请参见编辑)吗?

    编辑:底层C++类型 QLineSeries 提供count()方法,因此可以将LineSeries QML类型传递给采用Q_INVOKABLEQAbstractSeries*方法并以这种方式获得大小。但是,对于一个简单的问题,这似乎是一种荒谬的解决方法。

    最佳答案

    Qt 5.7是可能的。

    有一个“count”属性(不是函数),允许您使用QML / JS中的“at”函数迭代LineSeries的点。

    不幸的是,它没有记载,我做出了一个疯狂的猜测,很幸运,但是我想当您尝试使用Qt 5.5时该属性不存在。

    范例:

    for(var i = 0; i < lineSeries.count; ++i)
        console.log(lineSeries.at(i));
    

    关于c++ - 遍历QML XYSeries中的点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34618846/

    10-12 00:12