5#ifndef QABSTRACTSCROLLAREA_H
6#define QABSTRACTSCROLLAREA_H
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtWidgets/qframe.h>
14#if QT_CONFIG(scrollarea)
18class QAbstractScrollAreaPrivate;
20class Q_WIDGETS_EXPORT QAbstractScrollArea :
public QFrame
24 Q_PROPERTY(Qt::ScrollBarPolicy verticalScrollBarPolicy READ verticalScrollBarPolicy
25 WRITE setVerticalScrollBarPolicy)
26 Q_PROPERTY(Qt::ScrollBarPolicy horizontalScrollBarPolicy READ horizontalScrollBarPolicy
27 WRITE setHorizontalScrollBarPolicy)
28 Q_PROPERTY(SizeAdjustPolicy sizeAdjustPolicy READ sizeAdjustPolicy WRITE setSizeAdjustPolicy)
31 explicit QAbstractScrollArea(QWidget *parent =
nullptr);
32 ~QAbstractScrollArea();
34 enum SizeAdjustPolicy {
36 AdjustToContentsOnFirstShow,
39 Q_ENUM(SizeAdjustPolicy)
41 Qt::ScrollBarPolicy verticalScrollBarPolicy()
const;
42 void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy);
43 QScrollBar *verticalScrollBar()
const;
44 void setVerticalScrollBar(QScrollBar *scrollbar);
46 Qt::ScrollBarPolicy horizontalScrollBarPolicy()
const;
47 void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy);
48 QScrollBar *horizontalScrollBar()
const;
49 void setHorizontalScrollBar(QScrollBar *scrollbar);
51 QWidget *cornerWidget()
const;
52 void setCornerWidget(QWidget *widget);
54 void addScrollBarWidget(QWidget *widget, Qt::Alignment alignment);
55 QWidgetList scrollBarWidgets(Qt::Alignment alignment);
57 QWidget *viewport()
const;
58 void setViewport(QWidget *widget);
59 QSize maximumViewportSize()
const;
61 QSize minimumSizeHint()
const override;
63 QSize sizeHint()
const override;
65 virtual void setupViewport(QWidget *viewport);
67 SizeAdjustPolicy sizeAdjustPolicy()
const;
68 void setSizeAdjustPolicy(SizeAdjustPolicy policy);
71 QAbstractScrollArea(QAbstractScrollAreaPrivate &dd, QWidget *parent =
nullptr);
72 void setViewportMargins(
int left,
int top,
int right,
int bottom);
73 void setViewportMargins(
const QMargins &margins);
74 QMargins viewportMargins()
const;
76 bool eventFilter(QObject *, QEvent *) override;
77 bool event(QEvent *) override;
78 virtual bool viewportEvent(QEvent *);
80 void resizeEvent(QResizeEvent *) override;
81 void paintEvent(QPaintEvent *) override;
82 void mousePressEvent(QMouseEvent *) override;
83 void mouseReleaseEvent(QMouseEvent *) override;
84 void mouseDoubleClickEvent(QMouseEvent *) override;
85 void mouseMoveEvent(QMouseEvent *) override;
86#if QT_CONFIG(wheelevent)
87 void wheelEvent(QWheelEvent *) override;
89#ifndef QT_NO_CONTEXTMENU
90 void contextMenuEvent(QContextMenuEvent *) override;
92#if QT_CONFIG(draganddrop)
93 void dragEnterEvent(QDragEnterEvent *) override;
94 void dragMoveEvent(QDragMoveEvent *) override;
95 void dragLeaveEvent(QDragLeaveEvent *) override;
96 void dropEvent(QDropEvent *) override;
99 void keyPressEvent(QKeyEvent *) override;
101 virtual void scrollContentsBy(
int dx,
int dy);
103 virtual QSize viewportSizeHint()
const;
106 Q_DECLARE_PRIVATE(QAbstractScrollArea)
107 Q_DISABLE_COPY(QAbstractScrollArea)
108 Q_PRIVATE_SLOT(d_func(),
void _q_hslide(
int))
109 Q_PRIVATE_SLOT(d_func(),
void _q_vslide(
int))
110 Q_PRIVATE_SLOT(d_func(),
void _q_showOrHideScrollBars())
112 friend class QStyleSheetStyle;
113 friend class QWidgetPrivate;
static bool usePixmapCache(const QStyleOption *opt)
static const qreal qstyleBaseDpi
Q_GUI_EXPORT int qt_defaultDpiX()