Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QwtPlot在自动缩放期间自动调整大小_C++_Qwt - Fatal编程技术网

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

C++ QwtPlot在自动缩放期间自动调整大小,c++,qwt,C++,Qwt,我使用libqwt-6.1.1在QwtPlot元素中显示变量数据(作为直方图),使用y轴的自动缩放。根据实际数据和tic的数量,自动缩放运行认为合理,整个QwtPlot元素的最小高度通常会增加。这破坏了我的整个布局设计,经常使窗口比屏幕大 现在有两个问题: 1) 如何防止QwtPlot自动放大 2) 最小尺寸计算实际上是如何工作的?(我在QwtPlotLayout::ACTIVE()中的某个地方迷路了,当时我正在尝试执行计算步骤。)影响高度并取决于自动缩放的因素是垂直缩放的主刻度数(滴答数*字体

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

现在有两个问题:

1) 如何防止QwtPlot自动放大


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

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

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


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

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

重载
QwtPlot::sizeHint()
QwtPlot::minimumSizeHint()
(幸运的是,它们是虚拟的)使两者都返回一个小的常量值,这样做就达到了目的,即

QSize myPlot::sizeHint()const{return QSize(100100);}


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

谢谢你的建议,它实际上并没有解决问题,但将我的研究带回了正确的方向(见下面的解决方案)。