Здравствуйте, разрабатываю приложение, создаю окно, в котором есть два QScrollArea, в которых QVBoxLayout, в которые я кодом добавляю виджеты:
for object_data in objects_data:
widget = QWidget(self)
new_layout = QVBoxLayout()
object_file_name = QLabel(object_data['file_name'])
object_id = QLabel(f"Object_ID: {object_data['object_id']}")
gridLayout = QGridLayout()
for image in object_data['images']:
pixmap = QPixmap()
image_data = image.getvalue()
pixmap.loadFromData(image_data)
pixmap = pixmap.scaled(100, 300)
label = QLabel()
label.setPixmap(pixmap)
gridLayout.addWidget(label, gridLayout.count()//4, gridLayout.count() % 4) # Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop
pass
new_layout.addWidget(object_file_name)
new_layout.addWidget(object_id)
new_layout.addLayout(gridLayout)
widget.setLayout(new_layout)
layout.addWidget(widget)
Но проблема в том, что когда открывается окно, оно выглядит так:
(там QGridLayout с 4х4 изображениями)
Т.е. видно только какую-то часть, появляется вертикальный скролл бар, а мне бы хотелось, чтобы по горизонтали (по вертикали не надо, я же делаю скролл бар) QScrollArea расширилась до минимального размера, при котором видно все 4 столбца.
А нужно так:
Пробовал менять SizePolicy на всех объектах внутри и снаружи QScrollArea, в том числе и у него самого, на Expanding, и Minimum, но не получается
структура окна<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>combining_objects</class>
<widget class="QWidget" name="combining_objects">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>885</width>
<height>737</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string/>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QScrollArea" name="scrollArea">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustToContents</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>408</width>
<height>666</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<layout class="QVBoxLayout" name="verticalLayout_first_object">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string/>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QScrollArea" name="scrollArea_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents_2">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>407</width>
<height>666</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<layout class="QVBoxLayout" name="verticalLayout_second_object"/>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>