аватар question@mail.ru · 01.01.1970 03:00

Как работает QScrollArea?

Объясните, пожалуйста, как можно работать со 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)), то виджеты в ней растянутся:

Последние

Похожие