File indexing completed on 2026-09-14 09:20:53
0001
0002
0003
0004
0005 #ifndef QSCROLLAREA_H
0006 #define QSCROLLAREA_H
0007
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtWidgets/qabstractscrollarea.h>
0010
0011 QT_REQUIRE_CONFIG(scrollarea);
0012
0013 QT_BEGIN_NAMESPACE
0014
0015 class QScrollAreaPrivate;
0016
0017 class Q_WIDGETS_EXPORT QScrollArea : public QAbstractScrollArea
0018 {
0019 Q_OBJECT
0020 Q_PROPERTY(bool widgetResizable READ widgetResizable WRITE setWidgetResizable)
0021 Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment)
0022
0023 public:
0024 explicit QScrollArea(QWidget *parent = nullptr);
0025 ~QScrollArea();
0026
0027 QWidget *widget() const;
0028 void setWidget(QWidget *widget);
0029 QWidget *takeWidget();
0030
0031 bool widgetResizable() const;
0032 void setWidgetResizable(bool resizable);
0033
0034 QSize sizeHint() const override;
0035
0036 bool focusNextPrevChild(bool next) override;
0037
0038 Qt::Alignment alignment() const;
0039 void setAlignment(Qt::Alignment);
0040
0041 void ensureVisible(int x, int y, int xmargin = 50, int ymargin = 50);
0042 void ensureWidgetVisible(QWidget *childWidget, int xmargin = 50, int ymargin = 50);
0043
0044 protected:
0045 QScrollArea(QScrollAreaPrivate &dd, QWidget *parent = nullptr);
0046 bool event(QEvent *) override;
0047 bool eventFilter(QObject *, QEvent *) override;
0048 void resizeEvent(QResizeEvent *) override;
0049 void scrollContentsBy(int dx, int dy) override;
0050
0051 QSize viewportSizeHint() const override;
0052
0053 private:
0054 Q_DECLARE_PRIVATE(QScrollArea)
0055 Q_DISABLE_COPY(QScrollArea)
0056 };
0057
0058 QT_END_NAMESPACE
0059
0060 #endif