私はついにそれを理解しました。最初scrollareaにウィジェットを追加する際のトリックは、私が以前にこの幅を設定した
def _restrictWidthToFit(self):
layout = self._scroll.widget().layout()
if layout.count() > 0:
fw = layout.itemAt(0).widget().sizeHint().width()
sw = self._scroll.verticalScrollBar().sizeHint().width()
w = fw + sw
return w
:ここで私はscrollareaで私のサブウィジェットの1の幅を見つけるために使用していたハックコードがあります。しかし、この時点では、サイズはQtで完全には記入されていません。したがって、私は)showEventを(上書きすることにより幅を設定するために上記の方法を使用する:動作するように思われるので、この時点で
def showEvent(self, ev):
super(UIFilterCollection, self).showEvent(ev)
self._scroll.setFixedWidth(self._restrictWidthToFit())
幅が記入されています。
それは、彼らが私のシナリオでは何も変更していないようだ
setWidgetResizableにあるので、私のサブウィジェットのすべてがすでに同じ幅であることを注意することも価値があります。私はそれがスクロールエリアの基本的なウィジェットのためだと思います。 –
@ durden2.0。スクロールエリアにはどのウィジェットがありますか?質問にサンプルコードを追加して、達成しようとしていることが示されている場合に役立ちます。 – ekhumoro
申し訳ありませんが、複雑なレイアウトです。私は必需品にそれを沸かそうとするでしょう、私はスクロールエリアのQVBoxLayoutでまとめられたQlabelsの束を持っています。スクロール領域は、別のHBoxLayoutを持つQHboxLayoutの一部です。したがって、スクロール領域の幅は、デフォルトのHBoxLayoutのサイズの半分になります。私は最大QLabelの幅にデフォルトのスクロール領域の固定幅を設定したいと思います。したがって、水平スクロールバーは必要ありません。 –