QwtPlot在AutoScale期间自动调整大小

时间:2015-04-07 01:10:38

标签: c++ qwt

我正在使用libqwt-6.1.1在QwtPlot元素中显示可变数据(作为直方图),使用y轴的自动缩放。根据实际数据和抽动次数,自动调度运行认为合理,整个QwtPlot元素的最小高度通常会增加。这会破坏我的整个布局设计,并且经常使窗口大于屏幕。

现在有两个问题:

1)如何防止QwtPlot自动放大?

2)最小尺寸计算实际上如何工作? (我在尝试按照计算步骤时在QwtPlotLayout :: activate()中迷路了。)

2 个答案:

答案 0 :(得分:1)

最后,解决方案比预期更简单......

重载QwtPlot::sizeHint()QwtPlot::minimumSizeHint()(这是虚拟的,幸运的是)使得两者都返回一个小的常量值就行了,即

QSize myPlot::sizeHint() const { return QSize(100, 100); }

QSize myPlot::minimumSizeHint() const { return QSize(100, 100); }

答案 1 :(得分:0)

对高度产生影响并取决于自动缩放的因素是垂直刻度的主要刻度数(tickcount *字体高度)。

刻度的计算取决于给定的stepSize。当stepSize设置为0(=默认设置)时,它将根据maxMajor设置(默认值:8)计算,主要滴答数的上限是多少。

所以f.e.您可以使用stepSize为0并为您的用例设置合理的maxMajor设置。然后使用QLayout设置,其中绘图并不总是缩小到其最小高度。