Класс QAbstractScrollArea
Виджет QAbstractScrollArea предоставляет область прокрутки со скроллбарами по требованию. Подробнее...
| Заголовок: | #include <QAbstractScrollArea> |
| qmake: | QT += widgets |
| Наследует: | QFrame |
| Наследуется от: | QAbstractItemView, QGraphicsView, QMdiArea, QPlainTextEdit, QScrollArea и QTextEdit |
Типы public
| Перечисление | SizeAdjustPolicy { AdjustIgnored, AdjustToContents, AdjustToContentsOnFirstShow } |
Свойства
- horizontalScrollBarPolicy : Qt::ScrollBarPolicy
- sizeAdjustPolicy : SizeAdjustPolicy
- verticalScrollBarPolicy : Qt::ScrollBarPolicy
Public Функции
| QAbstractScrollArea(QWidget *parent = nullptr) | |
| virtual | ~QAbstractScrollArea() |
| void | addScrollBarWidget(QWidget *widget, Qt::Alignment alignment) |
| QWidget * | cornerWidget() const |
| QScrollBar * | horizontalScrollBar() const |
| Qt::ScrollBarPolicy | horizontalScrollBarPolicy() const |
| QSize | maximumViewportSize() const |
| QWidgetList | scrollBarWidgets(Qt::Alignment alignment) |
| void | setCornerWidget(QWidget *widget) |
| void | setHorizontalScrollBar(QScrollBar *scrollBar) |
| void | setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy) |
| void | setSizeAdjustPolicy(QAbstractScrollArea::SizeAdjustPolicy policy) |
| void | setVerticalScrollBar(QScrollBar *scrollBar) |
| void | setVerticalScrollBarPolicy(Qt::ScrollBarPolicy) |
| void | setViewport(QWidget *widget) |
| virtual void | setupViewport(QWidget *viewport) |
| QAbstractScrollArea::SizeAdjustPolicy | sizeAdjustPolicy() const |
| QScrollBar * | verticalScrollBar() const |
| Qt::ScrollBarPolicy | verticalScrollBarPolicy() const |
| QWidget * | viewport() const |
Переопределённые public функции
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
Protected функции
| virtual void | scrollContentsBy(int dx, int dy) |
| void | setViewportMargins(int left, int top, int right, int bottom) |
| void | setViewportMargins(const QMargins &margins) |
| virtual bool | viewportEvent(QEvent *event) |
| QMargins | viewportMargins() const |
| virtual QSize | viewportSizeHint() const |
Переопределённые protected функции
| virtual void | contextMenuEvent(QContextMenuEvent *e) override |
| virtual void | dragEnterEvent(QDragEnterEvent *event) override |
| virtual void | dragLeaveEvent(QDragLeaveEvent *event) override |
| virtual void | dragMoveEvent(QDragMoveEvent *event) override |
| virtual void | dropEvent(QDropEvent *event) override |
| virtual bool | event(QEvent *event) override |
| virtual void | keyPressEvent(QKeyEvent *e) override |
| virtual void | mouseDoubleClickEvent(QMouseEvent *e) override |
| virtual void | mouseMoveEvent(QMouseEvent *e) override |
| virtual void | mousePressEvent(QMouseEvent *e) override |
| virtual void | mouseReleaseEvent(QMouseEvent *e) override |
| virtual void | paintEvent(QPaintEvent *event) override |
| virtual void | resizeEvent(QResizeEvent *event) override |
| virtual void | wheelEvent(QWheelEvent *e) override |
Подробное описание
QAbstractScrollArea — это абстракция низкого уровня области прокрутки. Область содержит центральный виджет, называемый viewport, в котором содержимое области прокручивается (т. е. видимые части содержимого отрисовываются в viewport).
Рядом с областью просмотра находится вертикальная полоса прокрутки, а ниже — горизонтальная полоса прокрутки. Когда всё содержимое области помещается в область просмотра, каждая полоса прокрутки может быть либо видимой, либо скрытой, в зависимости от политики полосы прокрутки Qt::ScrollBarPolicy. Когда полоса прокрутки скрыта, область просмотра расширяется, чтобы занять всё доступное пространство. Когда полоса прокрутки снова становится видимой, область просмотра уменьшается, чтобы освободить место для полосы прокрутки.
Можно зарезервировать область отступа вокруг области просмотра, см. setViewportMargins(). Эта функция в основном используется для размещения виджета QHeaderView над или рядом с областью прокрутки. Подклассы QAbstractScrollArea должны реализовывать отступы.
При наследовании от QAbstractScrollArea необходимо выполнить следующие действия:
- Управлять полосами прокрутки, устанавливая их диапазон, значение, шаг страницы и отслеживая их перемещения.
- Отображать содержимое области в области просмотра в соответствии со значениями полос прокрутки.
- Обрабатывать события, получаемые областью просмотра в viewportEvent() — в частности, события изменения размера.
- Использовать
viewport->update()для обновления содержимого области просмотра вместо update(), так как все операции рисования выполняются в области просмотра.
При политике полосы прокрутки Qt::ScrollBarAsNeeded (по умолчанию), QAbstractScrollArea отображает полосы прокрутки, если они обеспечивают ненулевой диапазон прокрутки, и скрывает их в противном случае.
Полосы прокрутки и область просмотра должны обновляться всякий раз, когда область просмотра получает событие изменения размера или изменяется размер содержимого. Область просмотра также должна обновляться при изменении значений полос прокрутки. Начальные значения полос прокрутки часто устанавливаются, когда область получает новое содержимое.
Мы приводим простой пример, в котором мы реализовали область прокрутки, которая может прокручивать любой QWidget. Мы делаем виджет дочерним элементом области просмотра; таким образом, нам не нужно рассчитывать, какую часть виджета отображать, а можно просто перемещать виджет с помощью QWidget::move(). Когда содержимое области или размер области просмотра изменяются, мы выполняем следующие действия:
QSize areaSize = viewport()->size();
QSize widgetSize = widget->size();
verticalScrollBar()->setPageStep(areaSize.height());
horizontalScrollBar()->setPageStep(areaSize.width());
verticalScrollBar()->setRange(0, widgetSize.height() - areaSize.height());
horizontalScrollBar()->setRange(0, widgetSize.width() - areaSize.width());
updateWidgetPosition(); При изменении значений полос прокрутки нам необходимо обновить положение виджета, то есть найти часть виджета, которая должна быть отображена в области просмотра:
int hvalue = horizontalScrollBar()->value();
int vvalue = verticalScrollBar()->value();
QPoint topLeft = viewport()->rect().topLeft();
widget->move(topLeft.x() - hvalue, topLeft.y() - vvalue); Для отслеживания перемещения полос прокрутки переопределите виртуальную функцию scrollContentsBy(). Для настройки поведения прокрутки подключитесь к сигналу QAbstractSlider::actionTriggered() полосы прокрутки и настройте QAbstractSlider::sliderPosition по своему усмотрению.
Для удобства QAbstractScrollArea делает все события области просмотра доступными в обработчике виртуального viewportEvent(). Специализированные обработчики QWidget перенаправляются на события области просмотра в тех случаях, когда это имеет смысл. Перенаправленные специализированные обработчики: paintEvent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), contextMenuEvent() и resizeEvent().
QScrollArea, которая наследуется от QAbstractScrollArea, обеспечивает плавную прокрутку любого QWidget (то есть виджет прокручивается по пикселям). Вам нужно подклассифицировать QAbstractScrollArea только в том случае, если вам нужно более специализированное поведение. Это, например, справедливо, если всё содержимое области не подходит для отображения на QWidget или если вам не нужна плавная прокрутка.
См. также QScrollArea.
Документация по типам членов
enum QAbstractScrollArea::SizeAdjustPolicy
Этот перечисление определяет, как должна изменяться размерная подсказка QAbstractScrollArea, когда изменяется размер области просмотра.
| Константа | Значение | Описание |
|---|---|---|
QAbstractScrollArea::AdjustIgnored |
0 |
Область прокрутки будет вести себя как раньше — и не будет производить никаких корректировок. |
QAbstractScrollArea::AdjustToContents |
2 |
Область прокрутки всегда будет подстраиваться под область просмотра |
QAbstractScrollArea::AdjustToContentsOnFirstShow |
1 |
Область прокрутки будет подстраиваться под свою область просмотра при первом отображении. |
Это перечисление было введено или изменено в Qt 5.2.
Документация по свойствам
horizontalScrollBarPolicy : Qt::ScrollBarPolicy
Это свойство содержит политику для горизонтальной полосы прокрутки
Политика по умолчанию — Qt::ScrollBarAsNeeded.
Функции доступа:
| Qt::ScrollBarPolicy | horizontalScrollBarPolicy() const |
| void | setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy) |
См. также verticalScrollBarPolicy.
sizeAdjustPolicy : SizeAdjustPolicy
Это свойство содержит политику, описывающую, как изменяется размер области прокрутки, когда изменяется размер области просмотра.
Политика по умолчанию — QAbstractScrollArea::AdjustIgnored. Изменение этого свойства может фактически изменить размер области прокрутки.
Это свойство было введено в Qt 5.2.
Функции доступа:
| QAbstractScrollArea::SizeAdjustPolicy | sizeAdjustPolicy() const |
| void | setSizeAdjustPolicy(QAbstractScrollArea::SizeAdjustPolicy policy) |
verticalScrollBarPolicy : Qt::ScrollBarPolicy
Это свойство содержит политику для вертикальной полосы прокрутки
Политика по умолчанию — Qt::ScrollBarAsNeeded.
Функции доступа:
| Qt::ScrollBarPolicy | verticalScrollBarPolicy() const |
| void | setVerticalScrollBarPolicy(Qt::ScrollBarPolicy) |
См. также horizontalScrollBarPolicy.
Документация по функциям членов
QAbstractScrollArea::QAbstractScrollArea(QWidget *parent = nullptr)
Создаёт область просмотра.
Аргумент parent передаётся в конструктор QWidget.
[virtual] QAbstractScrollArea::~QAbstractScrollArea()
Удаляет область просмотра.
void QAbstractScrollArea::addScrollBarWidget(QWidget *widget, Qt::Alignment alignment)
Добавляет widget в качестве виджета полосы прокрутки в указанном месте alignment.
Виджеты полос прокрутки отображаются рядом с горизонтальной или вертикальной полосой прокрутки и могут быть размещены с любой стороны от неё. Если вы хотите, чтобы виджеты полос прокрутки всегда отображались, установите политику полосы прокрутки для соответствующей полосы прокрутки в AlwaysOn.
alignment должен быть одним из Qt::Alignleft и Qt::AlignRight, что соответствует горизонтальной полосе прокрутки, или Qt::AlignTop и Qt::AlignBottom, что соответствует вертикальной полосе прокрутки.
Виджет полосы прокрутки можно удалить, либо переместив его родительский виджет, либо удалив его. Также можно скрыть виджет с помощью QWidget::hide()
Виджет полосы прокрутки будет изменён для соответствия геометрии полосы прокрутки в текущем стиле. Следующее описание относится к виджетам полос прокрутки на горизонтальной полосе прокрутки:
Высота виджета будет установлена в соответствии с высотой полосы прокрутки. Для управления шириной виджета используйте QWidget::setMinimumWidth и QWidget::setMaximumWidth, или реализуйте QWidget::sizeHint() и установите политику горизонтального размера. Если вам нужен квадратный виджет, вызовите QStyle::pixelMetric(QStyle::PM_ScrollBarExtent) и установите ширину в это значение.
Эта функция была введена в Qt 4.2.
См. также scrollBarWidgets().
[override virtual protected] void QAbstractScrollArea::contextMenuEvent(QContextMenuEvent *e)
Переопределяет: QWidget::contextMenuEvent(QContextMenuEvent *event).
Этот обработчик событий может быть переопределён в подклассе для получения событий контекстного меню для виджета viewport(). Событие передаётся в e.
См. также QWidget::contextMenuEvent().
QWidget *QAbstractScrollArea::cornerWidget() const
Возвращает виджет в углу между двумя полосами прокрутки.
По умолчанию виджет в углу отсутствует.
Эта функция была добавлена в Qt 4.2.
См. также setCornerWidget().
[override virtual protected] void QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event)
Переопределяет: QWidget::dragEnterEvent(QDragEnterEvent *event).
Этот обработчик событий может быть переопределен в подклассе для получения событий drag enter (переданные в event) для виджета viewport().
См. также QWidget::dragEnterEvent().
[override virtual protected] void QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event)
Переопределяет: QWidget::dragLeaveEvent(QDragLeaveEvent *event).
Этот обработчик событий может быть переопределен в подклассе для получения событий drag leave (переданные в event) для виджета viewport().
См. также QWidget::dragLeaveEvent().
[override virtual protected] void QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event)
Переопределяет: QWidget::dragMoveEvent(QDragMoveEvent *event).
Этот обработчик событий может быть переопределен в подклассе для получения событий drag move (переданные в event) для виджета viewport().
См. также QWidget::dragMoveEvent().
[override virtual protected] void QAbstractScrollArea::dropEvent(QDropEvent *event)
Переопределяет: QWidget::dropEvent(QDropEvent *event).
Этот обработчик событий может быть переопределен в подклассе для получения событий drop (переданные в event) для виджета viewport().
См. также QWidget::dropEvent().
[override virtual protected] bool QAbstractScrollArea::event(QEvent *event)
Переопределяет: QFrame::event(QEvent *e).
Это основной обработчик событий для виджета QAbstractScrollArea (не области прокрутки viewport()). Указанный event — это общий объект события, который может потребоваться привести к соответствующему классу в зависимости от его типа.
См. также QEvent::type().
QScrollBar *QAbstractScrollArea::horizontalScrollBar() const
Возвращает горизонтальную полосу прокрутки.
См. также setHorizontalScrollBar(), horizontalScrollBarPolicy и verticalScrollBar().
[override virtual protected] void QAbstractScrollArea::keyPressEvent(QKeyEvent *e)
Переопределяет: QWidget::keyPressEvent(QKeyEvent *event).
Эта функция вызывается с событием клавиши e при нажатии клавиш. Она обрабатывает PageUp, PageDown, Up, Down, Left и Right, а все остальные нажатия клавиш игнорирует.
QSize QAbstractScrollArea::maximumViewportSize() const
Возвращает размер области просмотра, как если бы полосы прокрутки не имели действительного диапазона прокрутки.
[override virtual] QSize QAbstractScrollArea::minimumSizeHint() const
Переопределяет: QWidget::minimumSizeHint() const.
[override virtual protected] void QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e)
Переопределяет: QWidget::mouseDoubleClickEvent(QMouseEvent *event).
Этот обработчик событий может быть переопределен в подклассе для получения событий двойного щелчка мыши для виджета viewport(). Событие передаётся в e.
См. также QWidget::mouseDoubleClickEvent().
[override virtual protected] void QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e)
Переопределяет: QWidget::mouseMoveEvent(QMouseEvent *event).
Этот обработчик событий может быть переопределен в подклассе для получения событий перемещения мыши для виджета viewport(). Событие передаётся в e.
См. также QWidget::mouseMoveEvent().
[override virtual protected] void QAbstractScrollArea::mousePressEvent(QMouseEvent *e)
Переопределяет: QWidget::mousePressEvent(QMouseEvent *event).
Этот обработчик событий может быть переопределен в подклассе для получения событий нажатия мыши для виджета viewport(). Событие передаётся в e.
См. также QWidget::mousePressEvent().
[override virtual protected] void QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e)
Переопределяет: QWidget::mouseReleaseEvent(QMouseEvent *event).
Этот обработчик событий может быть переопределен в подклассе для получения событий отпускания мыши для виджета viewport(). Событие передаётся в e.
См. также QWidget::mouseReleaseEvent().
[override virtual protected] void QAbstractScrollArea::paintEvent(QPaintEvent *event)
Переопределяет: QFrame::paintEvent(QPaintEvent *).
Этот обработчик событий может быть переопределен в подклассе для получения событий рисования (переданные в event) для виджета viewport().
Примечание: Если вы открываете художник, убедитесь, что открываете его для viewport().
См. также QWidget::paintEvent().
[override virtual protected] void QAbstractScrollArea::resizeEvent(QResizeEvent *event)
Переопределяет: QWidget::resizeEvent(QResizeEvent *event).
Этот обработчик событий может быть переопределен в подклассе для получения событий изменения размера (переданные в event) для виджета viewport().
При вызове resizeEvent() область просмотра уже имеет свою новую геометрию: её новый размер доступен через функцию QResizeEvent::size(), а старый размер — через QResizeEvent::oldSize().
См. также QWidget::resizeEvent().
QWidgetList QAbstractScrollArea::scrollBarWidgets(Qt::Alignment alignment)
Возвращает список текущих виджетов полос прокрутки. alignment может быть любой комбинацией четырёх флагов расположения.
Эта функция была добавлена в Qt 4.2.
См. также addScrollBarWidget().
[virtual protected] void QAbstractScrollArea::scrollContentsBy(int dx, int dy)
Этот виртуальный обработчик вызывается при перемещении полос прокрутки на dx, dy, и в результате содержимое области просмотра должно быть прокручено соответственно.
Стандартная реализация просто вызывает update() для всей области просмотра viewport(), подклассы могут переопределять этот обработчик для оптимизации или, как в QScrollArea, для перемещения виджета содержимого. Параметры dx и dy предназначены для удобства, чтобы класс знал, на сколько нужно прокрутить (полезно, например, при выполнении пиксельных сдвигов). Вы можете просто проигнорировать эти значения и прокрутить напрямую до позиции, указанной полосами прокрутки.
Вызов этой функции для программно управляемой прокрутки является ошибкой. Используйте полосы прокрутки (например, вызвав QScrollBar::setValue() напрямую).
void QAbstractScrollArea::setCornerWidget(QWidget *widget)
Устанавливает виджет в углу между двумя полосами прокрутки на widget.
Вероятно, вам также потребуется установить хотя бы один из режимов полосы прокрутки в AlwaysOn.
Передача 0 показывает отсутствие виджета в углу.
Любой предыдущий виджет в углу скрывается.
Вы можете вызывать setCornerWidget() с тем же виджетом в разное время.
Все виджеты, установленные здесь, будут удалены областью прокрутки при её уничтожении, если вы не переродите виджет отдельно после установки другого виджета в углу (или nullptr).
Любой новый установленный виджет не должен иметь текущего родителя.
По умолчанию виджет в углу отсутствует.
Эта функция была добавлена в Qt 4.2.
См. также cornerWidget(), horizontalScrollBarPolicy и horizontalScrollBarPolicy.
void QAbstractScrollArea::setHorizontalScrollBar(QScrollBar *scrollBar)
Заменяет существующую горизонтальную полосу прокрутки на scrollBar и устанавливает все свойства ползунка предыдущей полосы прокрутки на новую полосу прокрутки. Предыдущая полоса прокрутки затем удаляется.
QAbstractScrollArea по умолчанию уже предоставляет горизонтальную и вертикальную полосы прокрутки. Вы можете вызвать эту функцию, чтобы заменить стандартную горизонтальную полосу прокрутки вашей собственной пользовательской полосой прокрутки.
Эта функция была представлена в Qt 4.2.
См. также horizontalScrollBar() и setVerticalScrollBar().
void QAbstractScrollArea::setVerticalScrollBar(QScrollBar *scrollBar)
Заменяет существующую вертикальную полосу прокрутки на scrollBar и устанавливает все свойства ползунка предыдущей полосы прокрутки на новую полосу прокрутки. Предыдущая полоса прокрутки затем удаляется.
QAbstractScrollArea по умолчанию уже предоставляет вертикальную и горизонтальную полосы прокрутки. Вы можете вызвать эту функцию, чтобы заменить стандартную вертикальную полосу прокрутки вашей собственной пользовательской полосой прокрутки.
Эта функция была представлена в Qt 4.2.
См. также verticalScrollBar() и setHorizontalScrollBar().
void QAbstractScrollArea::setViewport(QWidget *widget)
Устанавливает область просмотра в заданный widget. QAbstractScrollArea получит права собственности на указанный widget.
Если widget равен 0, QAbstractScrollArea назначит новый экземпляр QWidget для области просмотра.
Эта функция была представлена в Qt 4.2.
См. также viewport().
[protected] void QAbstractScrollArea::setViewportMargins(int left, int top, int right, int bottom)
Устанавливает отступы вокруг области прокрутки до значений left, top, right и bottom. Это полезно для приложений, таких как таблицы со «закреплёнными» строками и столбцами. Отступы остаются пустыми; размещайте виджеты в неиспользуемой области.
Обратите внимание, что эта функция часто вызывается QTreeView и QTableView, поэтому отступы должны быть реализованы подклассами QAbstractScrollArea. Кроме того, если подклассы будут использоваться в представлениях элементов, они не должны вызывать эту функцию.
По умолчанию все отступы равны нулю.
См. также viewportMargins().
[protected] void QAbstractScrollArea::setViewportMargins(const QMargins &margins)
Устанавливает margins вокруг области прокрутки. Это полезно для приложений, таких как таблицы со «закреплёнными» строками и столбцами. Отступы остаются пустыми; размещайте виджеты в неиспользуемой области.
По умолчанию все отступы равны нулю.
Эта функция была представлена в Qt 4.6.
См. также viewportMargins().
[virtual] void QAbstractScrollArea::setupViewport(QWidget *viewport)
Этот слот вызывается QAbstractScrollArea после вызова setViewport(viewport). Переопределите эту функцию в подклассе QAbstractScrollArea, чтобы инициализировать новый viewport перед его использованием.
См. также setViewport().
[override virtual] QSize QAbstractScrollArea::sizeHint() const
Переопределяет: QFrame::sizeHint() const.
Возвращает свойство sizeHint области прокрутки. Размер определяется с помощью viewportSizeHint() плюс некоторое дополнительное пространство для полос прокрутки, если необходимо.
QScrollBar *QAbstractScrollArea::verticalScrollBar() const
Возвращает вертикальную полосу прокрутки.
См. также setVerticalScrollBar(), verticalScrollBarPolicy и horizontalScrollBar().
QWidget *QAbstractScrollArea::viewport() const
Возвращает виджет области просмотра.
Используйте функцию QScrollArea::widget(), чтобы получить содержимое виджета области просмотра.
См. также setViewport() и QScrollArea::widget().
[virtual protected] bool QAbstractScrollArea::viewportEvent(QEvent *event)
Основной обработчик событий для области прокрутки (виджета viewport()). Обрабатывает указанное событие event и может вызываться подклассами для предоставления разумного поведения по умолчанию.
Возвращает true для указания системе событий, что событие обработано и не требует дальнейшей обработки; в противном случае возвращает false для указания того, что событие должно быть распространено дальше.
Вы можете переопределить эту функцию в подклассе, но рекомендуется использовать один из специализированных обработчиков событий вместо этого.
Специализированные обработчики для событий области просмотра: paintEvent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), contextMenuEvent() и resizeEvent().
[protected] QMargins QAbstractScrollArea::viewportMargins() const
Возвращает отступы вокруг области прокрутки. По умолчанию все отступы равны нулю.
Эта функция была представлена в Qt 5.5.
См. также setViewportMargins().
[virtual protected] QSize QAbstractScrollArea::viewportSizeHint() const
Возвращает рекомендуемый размер для области просмотра. Реализация по умолчанию возвращает viewport()->sizeHint(). Обратите внимание, что размер - это просто размер области просмотра без видимых полос прокрутки.
Эта функция была представлена в Qt 5.2.
[override virtual protected] void QAbstractScrollArea::wheelEvent(QWheelEvent *e)
Переопределяет: QWidget::wheelEvent(QWheelEvent *event).
Этот обработчик событий может быть переопределён в подклассе для получения событий прокрутки для виджета viewport(). Событие передаётся в e.
См. также QWidget::wheelEvent().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qabstractscrollarea.html