3

カスタム QWidget で QScrollArea を使用しています。私が直面している問題は、スクロールバーが表示されるたびに、ウィジェット内の要素が移動することです。そのため、スクロールバーが表示または非表示になったときにウィジェットが影響を受けないように、ある程度のスペースを確保したいと考えています。どうすればこれを達成できますか?

4

2 に答える 2

1
scrollArea->setWidgetResizable(false);
于 2013-08-30T15:56:43.903 に答える
0

私はこの問題に遭遇し、それを解決しました(完全ではないかもしれません)。

スクロール ウィジェットと 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 reserved space for the scroll bar , and it is closed. しかし、バグが修正されているかどうか、および解決策が何かはわかりません。

于 2016-05-13T08:37:39.870 に答える