我尝试的任何东西似乎都没有用。如果我从QDoubleSpinBox切换到QSpinBox,setMinimumSize正是我想要的,这让我相信这可能是Qt 5.1中的一个错误。
答案 0 :(得分:2)
我的Qt5.1在更改旋转框大小时看起来很好。在布局?你设置了布局设置:
setSizePolicy(QSizePolicy::Ignored,QSizePolicy::Ignored); ?
答案 1 :(得分:0)
实际上,QDoubleSpinBox
和QSpinBox
的大小策略是相同的。但是请注意,它们的最小宽度(或宽度提示)取决于其最小/最大值。默认的QDoubleSpinBox
宽度非常接近QSpinBox
,但是,如果QDoubleSpinBox
的精度是10位数字,并且其最大值设置为FLT_MAX
,则宽度将变为Qt会设置它的最大值,以便在不更改widegt大小的情况下适合最大值。
要解决此问题,我发现了两种解决方法:
只需在setSizePolicy( QSizePolicy( QSizePolicy::Ignored, sizePolicy().verticalPolicy() ) );
上调用QDoubleSpinBox
。
但是,现在布局管理可能会变得很小,以致其内容不再可见。因此,此解决方案并不完美。
将QDoubleSpinBox
添加到QLayout
,更新布局(调用layout->update()
),然后执行spinBox->setMinimumWidth( spinBox->minimumSizeHint().width()/2 );
。现在QDoubleSpinBox
可能比以前小两倍。但是,大量数字可能并不完全可见。