QwtPlot 在 AutoScale 期间自动调整大小
QwtPlot automatically resizes during AutoScale
我正在使用 libqwt-6.1.1 在 QwtPlot 元素(作为直方图)中使用 y 轴自动缩放显示变量数据。根据实际数据和 tic 的数量,autoscale-运行 认为合理,整个 QwtPlot 元素的最小高度通常会增加。这会破坏我的整个布局设计,并且经常使 window 比屏幕大。
现在有 2 个问题:
1) 如何防止QwtPlot自动放大?
2) 最小尺寸计算实际上是如何工作的? (我在尝试遵循计算步骤时在 QwtPlotLayout::activate() 的某个地方迷路了。)
影响高度并取决于自动缩放的因素是垂直缩放的主要刻度数(刻度计数 * 字体高度)。
刻度的计算取决于给定的步长。当 stepSize 设置为 0(= 默认设置)时,它是根据 maxMajor 设置(默认值:8)计算的,主要刻度数的上限是多少。
所以f.e。您可以将 stepSize 设置为 0 并为您的用例设置合理的 maxMajor 设置。然后使用 QLayout 设置,其中绘图并不总是缩小到其最小高度。
最后,解决方案比预期的要简单...
重载 QwtPlot::sizeHint()
和 QwtPlot::minimumSizeHint()
(幸运的是它们是虚拟的)使 return 成为一个小的常量值就成功了,即
QSize myPlot::sizeHint() const { return QSize(100, 100); }
QSize myPlot::minimumSizeHint() const { return QSize(100, 100); }
我正在使用 libqwt-6.1.1 在 QwtPlot 元素(作为直方图)中使用 y 轴自动缩放显示变量数据。根据实际数据和 tic 的数量,autoscale-运行 认为合理,整个 QwtPlot 元素的最小高度通常会增加。这会破坏我的整个布局设计,并且经常使 window 比屏幕大。
现在有 2 个问题:
1) 如何防止QwtPlot自动放大?
2) 最小尺寸计算实际上是如何工作的? (我在尝试遵循计算步骤时在 QwtPlotLayout::activate() 的某个地方迷路了。)
影响高度并取决于自动缩放的因素是垂直缩放的主要刻度数(刻度计数 * 字体高度)。
刻度的计算取决于给定的步长。当 stepSize 设置为 0(= 默认设置)时,它是根据 maxMajor 设置(默认值:8)计算的,主要刻度数的上限是多少。
所以f.e。您可以将 stepSize 设置为 0 并为您的用例设置合理的 maxMajor 设置。然后使用 QLayout 设置,其中绘图并不总是缩小到其最小高度。
最后,解决方案比预期的要简单...
重载 QwtPlot::sizeHint()
和 QwtPlot::minimumSizeHint()
(幸运的是它们是虚拟的)使 return 成为一个小的常量值就成功了,即
QSize myPlot::sizeHint() const { return QSize(100, 100); }
QSize myPlot::minimumSizeHint() const { return QSize(100, 100); }