QSCrollAreaがあり、最後にaddStretch()が追加されたQVBoxLayoutがあります。
ここでのQScrollAreaは、現在addStretchによって占有されている下に空き領域があるにもかかわらず、使用可能な領域の半分しか使用できません。
QScrollAreaのコンテンツが十分に大きい場合は、QScrollAreaを使用可能なすべてのスペースに拡張する必要があります。QScrollAreaのコンテンツが小さい場合、QScrollAreaをそのサイズに縮小し、残りの使用可能なスペースをaddStetchで使用するようにします。
ただし、現在、小さなQScrollAreaの場合、これは機能しますが、QScrollAreaのコンテンツが大きい場合、使用可能なスペースの半分にしか拡張されません。
QScrollAreaとその下にあるスクロールウィジェットにさまざまなサイズポリシーを設定しようとしましたが、何も機能しません。
これをソートするための秘訣は何ですか?
これが私のコードの抜粋です[PythonではありますがC++での回答は大歓迎です]:
# My setup
self.layout = QVBoxLayout()
self.setLayout(self.layout)
scrollArea = QScrollArea()
self.layout.addWidget(scrollArea)
scrollArea.setWidgetResizable(True)
scrollArea.setEnabled(True)
self.scrollWidget = QWidget()
self.scrollLayout = QVBoxLayout()
self.scrollWidget.setLayout(self.scrollLayout)
scrollArea.setWidget(self.scrollWidget)
# Now what I do is, I add bunch of widgets inside the self.scrollLayout
# and in the end, I perform a self.layout.addStretch() to push them up (verticle Alignment does same)
# Maximum height QScrollArea (scrollArea) gets is stuck at around 50% although I want to take all the space if necessary
可能なすべてのsetSizePolicy(..)オプションを追加しました
scrollArea.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding))
# and ALL others. None works. addStretch() still takes 50% minimum space and gets even more if QScrollArea's contents are smaller.