QwtPlot在自动缩放期间自动调整大小

QwtPlot automatically resizes during AutoScale

本文关键字:调整 缩放 QwtPlot      更新时间:2023-10-16

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

现在有两个问题:

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

2) 最小尺寸计算实际上是如何工作的?(我在QwtPlotLayout::activate()中的某个地方迷路了,当时我正试图遵循计算步骤。)

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

过载QwtPlot::sizeHint()QwtPlot::minimumSizeHint()(幸运的是,它们是虚拟的),使两者都返回一个小的常数值,这就起到了作用,即

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

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

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

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

因此,例如,您可以使用stepSize为0,并为您的用例设置一个合理的maxMajor设置。然后使用QLayout设置,在该设置中,打印并不总是收缩到其最小高度。