Как работает QScrollArea?
📁 работа
Объясните, пожалуйста, как можно работать со QScrollArea. В дизайнере сделал, но не работает. В интернете нормальных решений не нашел
это виджет-контейнер для виджетов, чей размер обычно очень большой и чтобы окно с ними умещалось, добавляются скролл-бары (ползунки).
Для помещения виджетов в QScrollArea нужен не layout (компоновщик), а виджет, поэтому у нее есть метод setWidget.
Например этот код создаст большое количество кнопок:
from PyQt5.QtWidgets import QApplication, QGridLayout, QPushButton, QWidget, QScrollAreaapp = QApplication([])layout = QGridLayout()for i in range(10): for j in range(5): button = QPushButton(f'{i}x{j}') layout.addWidget(button, i, j)w = QWidget()w.setLayout(layout)mw = QScrollArea()mw.setWidget(w)mw.resize(200, 200)mw.show()app.exec()Окно будет выглядеть так:
При увеличении размера окна ползунки исчезнут:
QScrollArea может менять размер виджетов в ней, растягивать их. За это отвечает свойство , которое по умолчанию False.
Если у QScrollArea это свойство активировать (mw.setWidgetResizable(True)), то виджеты в ней растянутся:
Войдите чтобы оставить ответ