【问题标题】:Reserving Space for QScrollArea为 QScrollArea 保留空间
【发布时间】:2023-03-16 09:33:01
【问题描述】:

我正在使用带有自定义 QWidget 的 QScrollArea。我面临的问题是,每当出现滚动条时,都会导致小部件中的元素发生变化。所以,我想保留一些空间,所以当滚动条出现或消失时,小部件不受影响。我怎样才能做到这一点?

【问题讨论】:

  • myScrollArea->setHorizo​​ntalScrollBarPolicy(Qt::ScrollBarAlwaysOn) 和 myScrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn) 怎么样?

标签: c++ qt


【解决方案1】:
scrollArea->setWidgetResizable(false);

【讨论】:

    【解决方案2】:

    我遇到了这个问题,刚刚解决了(可能不完全)。

    我为滚动小部件和 QScrollArea 设置了固定宽度,并设置了 QScrollArea Horizo​​ntal SizePolicy 固定,并隐藏了 Horizo​​ntalScrollBar。 示例代码

    QWidget *pWidget = new QWidget(this);
    pWidget->setFixedWidth(500);
    pWidget->setLayout(...)
    
    QScrollArea *pScrollArea = new QScrollArea();
    // Same with widget
    pScrollArea->setFixedWidth(500);
    pScrollArea->setWidget(pWidget);
    pScrollArea->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
    // Needed.
    pScrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    

    我还找到了一个错误报告:QTBUG-2347 QScrollArea: a new scroll policy that reserves space for the scroll bar,它已关闭。但是不知道bug是否修复,有什么解决办法。

    【讨论】:

      猜你喜欢
      • 2011-02-12
      • 2019-09-16
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 2011-01-30
      • 2015-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多