2013-01-31 58 views
4

我有一个使用了QScrollArea小部件的UI。 QScrollArea使用Flowlayout。我的问题是,当我添加小部件到我的布局时,滚动区域开始滚动,并且当它有足够的空间展开时不会展开。我希望滚动区域在第一个滚动条出现之前展开到极限。QScrollArea小部件未使用Flowlayout扩展

如何在滚动条出现之前让滚动区域展开?

+0

QScrollArea所在的窗口小部件的布局是什么样的?有布局吗? – MrFox

+0

@suslik'QScrollArea'位于'QFrame'小工具中。 – andre

回答

4

你能争取你QScrollArea做setWidgetResizable(真)

ScrollArea-> setWidgetResizable(真);

+0

我已经有了这一套。 – andre

0

一对夫妇的建议:

  1. 确保滚动区域的大小政策本身正在扩大。
  2. 将滚动区域大小策略的“拉伸”值设置为大于相同布局中其他小部件值的值。即:

    QSizePolicy policy = pScrollArea->sizePolicy() 
    
    policy.setVerticalStretch(1); 
    policy.setHorizontalStretch(1); 
    

    这假定该滚动区域(如果有的话)的兄弟姐妹具有0(默认值)的拉伸值。

  3. 子类化滚动区域并覆盖sizeHint()方法。

+0

感谢您的建议。我已经尝试了1和2,很快就会在3上工作。 – andre