Я наконец понял это.Вот хакерский код, который я использовал, чтобы узнать ширину одного из моих подвиджетов в 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.,Тем не менее, на данный момент размеры не полностью заполнены Qt.Таким образом, я использовал вышеописанный метод, чтобы установить ширину, переопределив showEvent ():
def showEvent(self, ev):
super(UIFilterCollection, self).showEvent(ev)
self._scroll.setFixedWidth(self._restrictWidthToFit())
В этот момент ширина заполнена, поэтому, похоже, она работает.
Это также стоитотмечая, что все мои подвиджеты уже имеют одинаковую ширину, так как они находятся в