我将 Qwt 6.3.0 与 QT 6.7.2 一起使用,通过 QwtPlot/QwtPlotCurve 绘制一些实时数据。目前,数据存储在固定大小的数组中并被循环覆盖。 在固定的时间间隔(10ms 或类似的时间)内,我在 QwtPlot 上触发“重新绘图”,如果我从文档中得到正确的结果,它也应该重新缩放(= UpdateAxes())。
不幸的是,无论我做什么,绘图都不会自动缩放。数据范围为 +-500,缩放通常为 +-1(这将完美匹配初始数据,顺便说一句,初始数据全部为零。)
如果我稍后在实际数据存储在缓冲区中时激活自动缩放,它暂时有效,但同样不会更改新数据的缩放。
有什么想法吗?
好吧,看来我在发布问题几分钟后就找到了答案(并且在之前毫无头绪的几个小时后;)):
问题分别是 QwtPlotCurve::minYValue/maxYValue 或boundingRect。这些似乎仅在调用“setRawSamples”时更新,但在底层数据更改或调用重新绘制时不会更新。
如果有人对我有更好的解决方案(除了更改底层数据以直接将其输入 QwtPlotCurve 之外),请告诉我!