// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QSCROLLAREA_H #define QSCROLLAREA_H #include #include QT_REQUIRE_CONFIG(scrollarea); QT_BEGIN_NAMESPACE class QScrollAreaPrivate; class Q_WIDGETS_EXPORT QScrollArea : public QAbstractScrollArea { Q_OBJECT Q_PROPERTY(bool widgetResizable READ widgetResizable WRITE setWidgetResizable) Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment) public: explicit QScrollArea(QWidget *parent = nullptr); ~QScrollArea(); QWidget *widget() const; void setWidget(QWidget *widget); QWidget *takeWidget(); bool widgetResizable() const; void setWidgetResizable(bool resizable); QSize sizeHint() const override; bool focusNextPrevChild(bool next) override; Qt::Alignment alignment() const; void setAlignment(Qt::Alignment); void ensureVisible(int x, int y, int xmargin = 50, int ymargin = 50); void ensureWidgetVisible(QWidget *childWidget, int xmargin = 50, int ymargin = 50); protected: QScrollArea(QScrollAreaPrivate &dd, QWidget *parent = nullptr); bool event(QEvent *) override; bool eventFilter(QObject *, QEvent *) override; void resizeEvent(QResizeEvent *) override; void scrollContentsBy(int dx, int dy) override; QSize viewportSizeHint() const override; private: Q_DECLARE_PRIVATE(QScrollArea) Q_DISABLE_COPY(QScrollArea) }; QT_END_NAMESPACE #endif // QSCROLLAREA_H