Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qabstractscrollarea.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QABSTRACTSCROLLAREA_H
6#define QABSTRACTSCROLLAREA_H
7
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtWidgets/qframe.h>
10
12
13
14#if QT_CONFIG(scrollarea)
15
16class QMargins;
17class QScrollBar;
18class QAbstractScrollAreaPrivate;
19
20class Q_WIDGETS_EXPORT QAbstractScrollArea : public QFrame
21{
22 Q_OBJECT
23
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)
29
30public:
31 explicit QAbstractScrollArea(QWidget *parent = nullptr);
32 ~QAbstractScrollArea();
33
34 enum SizeAdjustPolicy {
35 AdjustIgnored,
36 AdjustToContentsOnFirstShow,
37 AdjustToContents
38 };
39 Q_ENUM(SizeAdjustPolicy)
40
41 Qt::ScrollBarPolicy verticalScrollBarPolicy() const;
42 void setVerticalScrollBarPolicy(Qt::ScrollBarPolicy);
43 QScrollBar *verticalScrollBar() const;
44 void setVerticalScrollBar(QScrollBar *scrollbar);
45
46 Qt::ScrollBarPolicy horizontalScrollBarPolicy() const;
47 void setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy);
48 QScrollBar *horizontalScrollBar() const;
49 void setHorizontalScrollBar(QScrollBar *scrollbar);
50
51 QWidget *cornerWidget() const;
52 void setCornerWidget(QWidget *widget);
53
54 void addScrollBarWidget(QWidget *widget, Qt::Alignment alignment);
55 QWidgetList scrollBarWidgets(Qt::Alignment alignment);
56
57 QWidget *viewport() const;
58 void setViewport(QWidget *widget);
59 QSize maximumViewportSize() const;
60
61 QSize minimumSizeHint() const override;
62
63 QSize sizeHint() const override;
64
65 virtual void setupViewport(QWidget *viewport);
66
67 SizeAdjustPolicy sizeAdjustPolicy() const;
68 void setSizeAdjustPolicy(SizeAdjustPolicy policy);
69
70protected:
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;
75
76 bool eventFilter(QObject *, QEvent *) override;
77 bool event(QEvent *) override;
78 virtual bool viewportEvent(QEvent *);
79
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;
88#endif
89#ifndef QT_NO_CONTEXTMENU
90 void contextMenuEvent(QContextMenuEvent *) override;
91#endif
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;
97#endif
98
99 void keyPressEvent(QKeyEvent *) override;
100
101 virtual void scrollContentsBy(int dx, int dy);
102
103 virtual QSize viewportSizeHint() const;
104
105private:
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())
111
112 friend class QStyleSheetStyle;
113 friend class QWidgetPrivate;
114};
115
116#endif // QT_CONFIG(scrollarea)
117
118QT_END_NAMESPACE
119
120#endif // QABSTRACTSCROLLAREA_H
friend class QWidget
Definition qpainter.h:431
static bool usePixmapCache(const QStyleOption *opt)
static const qreal qstyleBaseDpi
Q_GUI_EXPORT int qt_defaultDpiX()
Definition qfont.cpp:113