【问题标题】:QScrollArea widget is not expanding with a FlowlayoutQScrollArea 小部件未使用 Flowlayout 扩展
【发布时间】:2013-01-31 20:56:50
【问题描述】:

我有一个带有QScrollArea 小部件的用户界面。 QScrollArea 使用 Flowlayout。我的问题是,当我在布局中添加小部件时,滚动区域开始滚动,并且在有扩展空间时不会扩展。我希望滚动区域在滚动条首先出现之前扩展到其极限。

如何在滚动条出现之前让滚动区域扩大?

【问题讨论】:

  • QScrollArea 所在的小部件的布局是什么样的?有布局吗?
  • @suslik QScrollArea 位于 QFrame 小部件中。

标签: c++ qt flowlayout qscrollarea


【解决方案1】:

您可以尝试为您的QScrollAreasetWidgetResizable(true)

ScrollArea->setWidgetResizable(true);

【讨论】:

    【解决方案2】:

    几个建议:

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

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

      这假定滚动区域的兄弟(如果有)的拉伸值为 0(默认值)。

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

    【讨论】:

    • 感谢您的建议。我已经尝试了 1 和 2,很快就会在 3 上工作。
    猜你喜欢
    • 2018-03-22
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多