如何更改QDoubleSpinBox的大小?

时间:2014-04-09 20:58:11

标签: c++ qt

我尝试的任何东西似乎都没有用。如果我从QDoubleSpinBox切换到QSpinBox,setMinimumSize正是我想要的,这让我相信这可能是Qt 5.1中的一个错误。

2 个答案:

答案 0 :(得分:2)

我的Qt5.1在更改旋转框大小时看起来很好。在布局?你设置了布局设置:

setSizePolicy(QSizePolicy::Ignored,QSizePolicy::Ignored); ?

答案 1 :(得分:0)

实际上,QDoubleSpinBoxQSpinBox的大小策略是相同的。但是请注意,它们的最小宽度(或宽度提示)取决于其最小/最大值。默认的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可能比以前小两倍。但是,大量数字可能并不完全可见。