Объясните, пожалуйста, как можно работать со QScrollArea. В дизайнере сделал, но не работает. В интернете нормальных решений не нашел
question@mail.ru
·
01.01.1970 03:00
Как работает QScrollArea?
answer@mail.ru
·
01.01.1970 03:00
это виджет-контейнер для виджетов, чей размер обычно очень большой и чтобы окно с ними умещалось, добавляются скролл-бары (ползунки).
Для помещения виджетов в 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)), то виджеты в ней растянутся:
Блоги
Классы и объекты в Python: основы объектно-ориентированного программирования
Как отправить HTTP-запрос с requests
Как не забывать Python, если долго не программируешь
Множества и кортежи в Python: зачем они нужны?