Qwt情节汽车规模不起作用

时间:2013-02-04 10:42:45

标签: c++ qt qwt

我正在尝试使用qt 4.8和qwt 6绘制一些数据,但我的曲线不会缩放到绘图上(1)。

这是我将曲线附加到绘图的方式:

curves[moduleIndex][channelIndex]->setSamples(samples, data);
curves[moduleIndex][channelIndex]->attach(plots[moduleIndex][channelIndex]);

样本和数据是QVectors,samples.size()等于data.size()

plots[moduleIndex][channelIndex]->axisAutoScale(QwtPlot::xBottom)返回true,因此autoScale已启用。

我错过了什么?

qwt plot auto scale

更新:我认为问题发生是因为禁用了轴

plots[i][j]->enableAxis(QwtPlot::yLeft, false);
plots[i][j]->enableAxis(QwtPlot::xBottom, false);

但我已经评论过它并没有帮助。

qwt plot auto scale with axis

2 个答案:

答案 0 :(得分:3)

我相信'自动缩放'已经在工作了。但是为了使轴看起来很好,它需要一个最大值的舍入数字,这会导致最后的间隙。 QwtPlot的比例由QwtScaleEngine管理。您可以使用QwtPlot :: axisScaleEngine(...)获取指向默认scaleEngine的指针。将Floating属性设置为true将消除此差距,并使您的数据符合边界。请参阅文档:http://qwt.sourceforge.net/class_qwt_scale_engine.html

例如:

plot.axisScaleEngine(QwtPlot::xBottom)->setAttribute(QwtScaleEngine::Floating,true);

答案 1 :(得分:3)

设置QwtScaleEngine :: Floating + QwtPlotLayout :: setAlignCanvasToScales(true)时,画布应与曲线的边界完全对齐。