开发者

Qt - How to control the widget sizes in QLayout

I am trying to put some spinboxes,line edits in a layout. But the size extends more than the neccesity. Below is the figure

Qt - How to control the widget sizes in QLayout

Here I am adding a QScrollArea widget,and a QVBoxLayou开发者_如何转开发t into a QHBoxLayout. Then I am adding the line edits,spin boxes into the QVBoxLayout. But I want to reduce the width as 2/10 of the total width. Can anybody help me in this?


In my opinion, working with stretch factors is not the right solution, here. It's a bit "hackish". Stretch factors are useful e.g. when you have two widgets that both use as much space as possible, but not at a 50:50 rate.

Here, as I see it, you have two widgets (or groups of widgets), where one should only use as much space as it really needs and the other one should take the rest. That is what size policies are for. Set the horizontal policy of the left one to Expanding (or MinimumExpanding if you want to prevent scroll bars) and the right one to Preferred.


It's easy. It can be done by giving the stretching factor. That means you have to initiate the value when you use the functions

addWidget(widget,stretchfactor);
       or
addLayout(layout,stretchfactor);


I think you should try with void setSizeConstraint ( SizeConstraint ) and minimumSize() inherited methods.

Read the doc


Take a look at QSizePolicy. It may be usefull.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜