我正在使用libqwt-6.1.1在QwtPlot元素中显示可变数据(作为直方图),使用y轴的自动缩放。根据实际数据和抽动次数,自动调度运行认为合理,整个QwtPlot元素的最小高度通常会增加。这会破坏我的整个布局设计,并且经常使窗口大于屏幕。
现在有两个问题:
1)如何防止QwtPlot自动放大?
2)最小尺寸计算实际上如何工作? (我在尝试按照计算步骤时在QwtPlotLayout :: activate()中迷路了。)
答案 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设置,其中绘图并不总是缩小到其最小高度。