我正在制作一个简单的图形用户界面,您可以在其中设置一些x和y范围。如何从图表中所有图表中选择这些范围内的所有项目? 我试图重现在mouse rectangular multi range selection上运行的相同算法,但我没有成功。我希望有一些更容易的方法,我错过了。
让我们说A和B是一对QCPRanges:
QCPRange A = QCPRange(2,4);
QCPRange B = QCPRange(1,8);
我想在图中标记A和B范围内的点。
我正在寻找一些线索和提示,而不是一个完整的复制粘贴就绪代码。
答案 0 :(得分:1)
我实现了我想要的目标:
通过迭代data()
plot->getAllGraphs();
来获取所有图表中的所有记录
检查QCPRanges是否包含每个数据点
根据符合QCPRanges要求的索引构建QCPDataRanges
从QCPDataRanges中构建QCPSelection。
为循环中的每个图设置适当的选择。
注意:要使其工作,必须为绘图设置交互
QCP::iMultiSelect
。您还需要为每个图表setSelectable(QCP::stMultipleDataRanges)
。否则,您可能会因选择而获得不需要的行为。
这并不是世界上最优化的方式,但如果不重写部分lib,我就无法想到更好的方法。欢迎任何更好的方式