File indexing completed on 2026-09-16 09:23:47
0001
0002
0003
0004
0005 #ifndef QSCROLLBAR_H
0006 #define QSCROLLBAR_H
0007
0008 #include <QtWidgets/qtwidgetsglobal.h>
0009 #include <QtWidgets/qwidget.h>
0010
0011 #include <QtWidgets/qabstractslider.h>
0012
0013 QT_REQUIRE_CONFIG(scrollbar);
0014
0015 QT_BEGIN_NAMESPACE
0016
0017 class QScrollBarPrivate;
0018 class QStyleOptionSlider;
0019
0020 class Q_WIDGETS_EXPORT QScrollBar : public QAbstractSlider
0021 {
0022 Q_OBJECT
0023 public:
0024 explicit QScrollBar(QWidget *parent = nullptr);
0025 explicit QScrollBar(Qt::Orientation, QWidget *parent = nullptr);
0026 ~QScrollBar();
0027
0028 QSize sizeHint() const override;
0029 bool event(QEvent *event) override;
0030
0031 #ifndef QT_NO_CONTEXTMENU
0032 QMenu *createStandardContextMenu(QPoint position);
0033 #endif
0034
0035 protected:
0036 #if QT_CONFIG(wheelevent)
0037 void wheelEvent(QWheelEvent *) override;
0038 #endif
0039 void paintEvent(QPaintEvent *) override;
0040 void mousePressEvent(QMouseEvent *) override;
0041 void mouseReleaseEvent(QMouseEvent *) override;
0042 void mouseMoveEvent(QMouseEvent *) override;
0043 void hideEvent(QHideEvent*) override;
0044 void sliderChange(SliderChange change) override;
0045 #ifndef QT_NO_CONTEXTMENU
0046 void contextMenuEvent(QContextMenuEvent *) override;
0047 #endif
0048 virtual void initStyleOption(QStyleOptionSlider *option) const;
0049
0050
0051 private:
0052 friend class QAbstractScrollAreaPrivate;
0053 friend Q_WIDGETS_EXPORT QStyleOptionSlider qt_qscrollbarStyleOption(QScrollBar *scrollBar);
0054
0055 Q_DISABLE_COPY(QScrollBar)
0056 Q_DECLARE_PRIVATE(QScrollBar)
0057 #if QT_CONFIG(itemviews)
0058 friend class QTableView;
0059 friend class QTreeViewPrivate;
0060 friend class QCommonListViewBase;
0061 friend class QListModeViewBase;
0062 friend class QAbstractItemView;
0063 #endif
0064 };
0065
0066 QT_END_NAMESPACE
0067
0068 #endif