QCustomPlot中手动矩形选择项目

时间:2017-10-03 17:22:56

标签: c++ qt qcustomplot

我正在制作一个简单的图形用户界面,您可以在其中设置一些x和y范围。如何从图表中所有图表中选择这些范围内的所有项目? 我试图重现在mouse rectangular multi range selection上运行的相同算法,但我没有成功。我希望有一些更容易的方法,我错过了。

实施例:enter image description here

让我们说A和B是一对QCPRanges:

QCPRange A = QCPRange(2,4);
QCPRange B = QCPRange(1,8);

我想在图中标记A和B范围内的点。

我正在寻找一些线索和提示,而不是一个完整的复制粘贴就绪代码。

1 个答案:

答案 0 :(得分:1)

我实现了我想要的目标:

  1. 通过迭代data()

  2. 中每个图表的所有plot->getAllGraphs();来获取所有图表中的所有记录
  3. 检查QCPRanges是否包含每个数据点

  4. 根据符合QCPRanges要求的索引构建QCPDataRanges

  5. 从QCPDataRanges中构建QCPSelection。

  6. 为循环中的每个图设置适当的选择。

  7.   

    注意:要使其工作,必须为绘图设置交互QCP::iMultiSelect。您还需要为每个图表setSelectable(QCP::stMultipleDataRanges)。否则,您可能会因选择而获得不需要的行为。

    这并不是世界上最优化的方式,但如果不重写部分lib,我就无法想到更好的方法。欢迎任何更好的方式