Qt 4.8
Public Functions | Protected Slots | Protected Functions | Properties | Friends | List of all members
QAbstractScrollArea Class Reference

The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars. More...

#include <qabstractscrollarea.h>

Inheritance diagram for QAbstractScrollArea:
QFrame QWidget QObject QPaintDevice QAbstractItemView QGraphicsView QMdiArea QPlainTextEdit QScrollArea QTextEdit QColumnView QColumnViewPreviewColumn QHeaderView QListView QTableView QTreeView QDeclarativeView QScriptEdit QErrorMessageTextView QMessageBoxDetailsText::TextEdit QTextBrowser

Public Functions

void addScrollBarWidget (QWidget *widget, Qt::Alignment alignment)
 Adds widget as a scroll bar widget in the location specified by alignment. More...
 
QWidgetcornerWidget () const
 Returns the widget in the corner between the two scroll bars. More...
 
QScrollBarhorizontalScrollBar () const
 Returns the horizontal scroll bar. More...
 
Qt::ScrollBarPolicy horizontalScrollBarPolicy () const
 
QSize maximumViewportSize () const
 Returns the size of the viewport as if the scroll bars had no valid scrolling range. More...
 
QSize minimumSizeHint () const
 Reimplemented Function More...
 
 QAbstractScrollArea (QWidget *parent=0)
 Constructs a viewport. More...
 
QWidgetList scrollBarWidgets (Qt::Alignment alignment)
 Returns a list of the currently set scroll bar widgets. More...
 
void setCornerWidget (QWidget *widget)
 Sets the widget in the corner between the two scroll bars to be widget. More...
 
void setHorizontalScrollBar (QScrollBar *scrollbar)
 Replaces the existing horizontal scroll bar with scrollBar, and sets all the former scroll bar's slider properties on the new scroll bar. More...
 
void setHorizontalScrollBarPolicy (Qt::ScrollBarPolicy)
 
void setVerticalScrollBar (QScrollBar *scrollbar)
 Replaces the existing vertical scroll bar with scrollBar, and sets all the former scroll bar's slider properties on the new scroll bar. More...
 
void setVerticalScrollBarPolicy (Qt::ScrollBarPolicy)
 
void setViewport (QWidget *widget)
 Sets the viewport to be the given widget. More...
 
QSize sizeHint () const
 Reimplemented Function More...
 
QScrollBarverticalScrollBar () const
 Returns the vertical scroll bar. More...
 
Qt::ScrollBarPolicy verticalScrollBarPolicy () const
 
QWidgetviewport () const
 Returns the viewport widget. More...
 
 ~QAbstractScrollArea ()
 Destroys the viewport. More...
 
- Public Functions inherited from QFrame
QRect frameRect () const
 
Shadow frameShadow () const
 
Shape frameShape () const
 
int frameStyle () const
 Returns the frame style. More...
 
int frameWidth () const
 
int lineWidth () const
 
int midLineWidth () const
 
 QFrame (QWidget *parent=0, Qt::WindowFlags f=0)
 Constructs a frame widget with frame style NoFrame and a 1-pixel frame width. More...
 
void setFrameRect (const QRect &)
 em>Reimplemented Function More...
 
void setFrameShadow (Shadow)
 
void setFrameShape (Shape)
 
void setFrameStyle (int)
 Sets the frame style to style. More...
 
void setLineWidth (int)
 
void setMidLineWidth (int)
 
QSize sizeHint () const
 em>Reimplemented Function More...
 
 ~QFrame ()
 Destroys the frame. More...
 
- Public Functions inherited from QWidget
bool acceptDrops () const
 
QString accessibleDescription () const
 
QString accessibleName () const
 
QList< QAction * > actions () const
 Returns the (possibly empty) list of this widget's actions. More...
 
void activateWindow ()
 Sets the top-level widget containing this widget to be the active window. More...
 
void addAction (QAction *action)
 Appends the action action to this widget's list of actions. More...
 
void addActions (QList< QAction *> actions)
 Appends the actions actions to this widget's list of actions. More...
 
void adjustSize ()
 Adjusts the size of the widget to fit its contents. More...
 
bool autoFillBackground () const
 
QPalette::ColorRole backgroundRole () const
 Returns the background role of the widget. More...
 
QSize baseSize () const
 
QWidgetchildAt (int x, int y) const
 Returns the visible child widget at the position ({x}, {y}) in the widget's coordinate system. More...
 
QWidgetchildAt (const QPoint &p) const
 Returns the visible child widget at point p in the widget's own coordinate system. More...
 
QRect childrenRect () const
 
QRegion childrenRegion () const
 
void clearFocus ()
 Takes keyboard input focus from the widget. More...
 
void clearMask ()
 Removes any mask set by setMask(). More...
 
QMargins contentsMargins () const
 The contentsMargins function returns the widget's contents margins. More...
 
QRect contentsRect () const
 Returns the area inside the widget's margins. More...
 
Qt::ContextMenuPolicy contextMenuPolicy () const
 
void createWinId ()
 
QCursor cursor () const
 
int devType () const
 
WId effectiveWinId () const
 Returns the effective window system identifier of the widget, i. More...
 
void ensurePolished () const
 Ensures that the widget has been polished by QStyle (i.e., has a proper font and palette). More...
 
Qt::FocusPolicy focusPolicy () const
 
QWidgetfocusProxy () const
 Returns the focus proxy, or 0 if there is no focus proxy. More...
 
QWidgetfocusWidget () const
 Returns the last child of this widget that setFocus had been called on. More...
 
const QFontfont () const
 
QFontInfo fontInfo () const
 Returns the font info for the widget's current font. More...
 
QFontMetrics fontMetrics () const
 Returns the font metrics for the widget's current font. More...
 
QPalette::ColorRole foregroundRole () const
 Returns the foreground role. More...
 
QRect frameGeometry () const
 
QSize frameSize () const
 
const QRectgeometry () const
 
void getContentsMargins (int *left, int *top, int *right, int *bottom) const
 Returns the widget's contents margins for left, top, right, and bottom. More...
 
HDC getDC () const
 Returns the window system handle of the widget, for low-level access. More...
 
void grabGesture (Qt::GestureType type, Qt::GestureFlags flags=Qt::GestureFlags())
 Subscribes the widget to a given gesture with specific flags. More...
 
void grabKeyboard ()
 Grabs the keyboard input. More...
 
void grabMouse ()
 Grabs the mouse input. More...
 
void grabMouse (const QCursor &)
 
int grabShortcut (const QKeySequence &key, Qt::ShortcutContext context=Qt::WindowShortcut)
 Adds a shortcut to Qt's shortcut system that watches for the given key sequence in the given context. More...
 
QGraphicsEffectgraphicsEffect () const
 The graphicsEffect function returns a pointer to the widget's graphics effect. More...
 
QGraphicsProxyWidgetgraphicsProxyWidget () const
 Returns the proxy widget for the corresponding embedded widget in a graphics view; otherwise returns 0. More...
 
bool hasFocus () const
 
bool hasMouseTracking () const
 
int height () const
 
virtual int heightForWidth (int) const
 Returns the preferred height for this widget, given the width w. More...
 
QInputContextinputContext ()
 This function returns the QInputContext for this widget. More...
 
Qt::InputMethodHints inputMethodHints () const
 
virtual QVariant inputMethodQuery (Qt::InputMethodQuery) const
 This method is only relevant for input widgets. More...
 
void insertAction (QAction *before, QAction *action)
 Inserts the action action to this widget's list of actions, before the action before. More...
 
void insertActions (QAction *before, QList< QAction *> actions)
 Inserts the actions actions to this widget's list of actions, before the action before. More...
 
WId internalWinId () const
 Returns the window system identifier of the widget, or 0 if the widget is not created yet. More...
 
bool isActiveWindow () const
 
bool isAncestorOf (const QWidget *child) const
 Returns true if this widget is a parent, (or grandparent and so on to any level), of the given child, and both widgets are within the same window; otherwise returns false. More...
 
bool isEnabled () const
 
bool isEnabledTo (QWidget *) const
 Returns true if this widget would become enabled if ancestor is enabled; otherwise returns false. More...
 
bool isEnabledToTLW () const
 This function is deprecated. More...
 
bool isFullScreen () const
 
bool isHidden () const
 Returns true if the widget is hidden, otherwise returns false. More...
 
bool isLeftToRight () const
 
bool isMaximized () const
 
bool isMinimized () const
 
bool isModal () const
 
bool isRightToLeft () const
 
bool isTopLevel () const
 Use isWindow() instead. More...
 
bool isVisible () const
 
bool isVisibleTo (QWidget *) const
 Returns true if this widget would become visible if ancestor is shown; otherwise returns false. More...
 
bool isWindow () const
 Returns true if the widget is an independent window, otherwise returns false. More...
 
bool isWindowModified () const
 
QLayoutlayout () const
 Returns the layout manager that is installed on this widget, or 0 if no layout manager is installed. More...
 
Qt::LayoutDirection layoutDirection () const
 
QLocale locale () const
 
Qt::HANDLE macCGHandle () const
 Returns the CoreGraphics handle of the widget. More...
 
Qt::HANDLE macQDHandle () const
 Returns the QuickDraw handle of the widget. More...
 
QPoint mapFrom (QWidget *, const QPoint &) const
 Translates the widget coordinate pos from the coordinate system of parent to this widget's coordinate system. More...
 
QPoint mapFromGlobal (const QPoint &) const
 Translates the global screen coordinate pos to widget coordinates. More...
 
QPoint mapFromParent (const QPoint &) const
 Translates the parent widget coordinate pos to widget coordinates. More...
 
QPoint mapTo (QWidget *, const QPoint &) const
 Translates the widget coordinate pos to the coordinate system of parent. More...
 
QPoint mapToGlobal (const QPoint &) const
 Translates the widget coordinate pos to global screen coordinates. More...
 
QPoint mapToParent (const QPoint &) const
 Translates the widget coordinate pos to a coordinate in the parent widget. More...
 
QRegion mask () const
 Returns the mask currently set on a widget. More...
 
int maximumHeight () const
 
QSize maximumSize () const
 
int maximumWidth () const
 
int minimumHeight () const
 
QSize minimumSize () const
 
int minimumWidth () const
 
void move (int x, int y)
 This corresponds to move(QPoint(x, y)). More...
 
void move (const QPoint &)
 
QWidgetnativeParentWidget () const
 Returns the native parent for this widget, i. More...
 
QWidgetnextInFocusChain () const
 Returns the next widget in this widget's focus chain. More...
 
QRect normalGeometry () const
 
void overrideWindowFlags (Qt::WindowFlags type)
 Sets the window flags for the widget to flags, without telling the window system. More...
 
void overrideWindowState (Qt::WindowStates state)
 
QPaintEnginepaintEngine () const
 Returns the widget's paint engine. More...
 
const QPalettepalette () const
 
QWidgetparentWidget () const
 Returns the parent of this widget, or 0 if it does not have any parent widget. More...
 
QPoint pos () const
 
QWidgetpreviousInFocusChain () const
 The previousInFocusChain function returns the previous widget in this widget's focus chain. More...
 
 QWidget (QWidget *parent=0, Qt::WindowFlags f=0)
 Constructs a widget which is a child of parent, with widget flags set to f. More...
 
QRect rect () const
 
void releaseDC (HDC) const
 Releases the HDC hdc acquired by a previous call to getDC(). More...
 
void releaseKeyboard ()
 Releases the keyboard grab. More...
 
void releaseMouse ()
 Releases the mouse grab. More...
 
void releaseShortcut (int id)
 Removes the shortcut with the given id from Qt's shortcut system. More...
 
void removeAction (QAction *action)
 Removes the action action from this widget's list of actions. More...
 
void render (QPaintDevice *target, const QPoint &targetOffset=QPoint(), const QRegion &sourceRegion=QRegion(), RenderFlags renderFlags=RenderFlags(DrawWindowBackground|DrawChildren))
 Renders the sourceRegion of this widget into the target using renderFlags to determine how to render. More...
 
void render (QPainter *painter, const QPoint &targetOffset=QPoint(), const QRegion &sourceRegion=QRegion(), RenderFlags renderFlags=RenderFlags(DrawWindowBackground|DrawChildren))
 Renders the widget into the painter's QPainter::device(). More...
 
void repaint (int x, int y, int w, int h)
 This version repaints a rectangle (x, y, w, h) inside the widget. More...
 
void repaint (const QRect &)
 This version repaints a rectangle rect inside the widget. More...
 
void repaint (const QRegion &)
 This version repaints a region rgn inside the widget. More...
 
void resize (int w, int h)
 This corresponds to resize(QSize(w, h)). More...
 
void resize (const QSize &)
 
bool restoreGeometry (const QByteArray &geometry)
 Restores the geometry and state top-level widgets stored in the byte array geometry. More...
 
QByteArray saveGeometry () const
 Saves the current geometry and state for top-level widgets. More...
 
void scroll (int dx, int dy)
 Scrolls the widget including its children dx pixels to the right and dy downward. More...
 
void scroll (int dx, int dy, const QRect &)
 This version only scrolls r and does not move the children of the widget. More...
 
void setAcceptDrops (bool on)
 
void setAccessibleDescription (const QString &description)
 
void setAccessibleName (const QString &name)
 
void setAttribute (Qt::WidgetAttribute, bool on=true)
 Sets the attribute attribute on this widget if on is true; otherwise clears the attribute. More...
 
void setAutoFillBackground (bool enabled)
 
void setBackgroundRole (QPalette::ColorRole)
 Sets the background role of the widget to role. More...
 
void setBaseSize (const QSize &)
 
void setBaseSize (int basew, int baseh)
 This corresponds to setBaseSize(QSize(basew, baseh)). More...
 
void setContentsMargins (int left, int top, int right, int bottom)
 Sets the margins around the contents of the widget to have the sizes left, top, right, and bottom. More...
 
void setContentsMargins (const QMargins &margins)
 The setContentsMargins function sets the margins around the widget's contents. More...
 
void setContextMenuPolicy (Qt::ContextMenuPolicy policy)
 
void setCursor (const QCursor &)
 
void setFixedHeight (int h)
 Sets both the minimum and maximum heights of the widget to h without changing the widths. More...
 
void setFixedSize (const QSize &)
 Sets both the minimum and maximum sizes of the widget to s, thereby preventing it from ever growing or shrinking. More...
 
void setFixedSize (int w, int h)
 Sets the width of the widget to w and the height to h. More...
 
void setFixedWidth (int w)
 Sets both the minimum and maximum width of the widget to w without changing the heights. More...
 
void setFocus (Qt::FocusReason reason)
 Gives the keyboard input focus to this widget (or its focus proxy) if this widget or one of its parents is the active window. More...
 
void setFocusPolicy (Qt::FocusPolicy policy)
 
void setFocusProxy (QWidget *)
 Sets the widget's focus proxy to widget w. More...
 
void setFont (const QFont &)
 Use the single-argument overload instead. More...
 
void setForegroundRole (QPalette::ColorRole)
 Sets the foreground role of the widget to role. More...
 
void setGeometry (int x, int y, int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This corresponds to setGeometry(QRect(x, y, w, h)). More...
 
void setGeometry (const QRect &)
 
void setGraphicsEffect (QGraphicsEffect *effect)
 The setGraphicsEffect function is for setting the widget's graphics effect. More...
 
void setInputContext (QInputContext *)
 This function sets the input context context on this widget. More...
 
void setInputMethodHints (Qt::InputMethodHints hints)
 
void setLayout (QLayout *)
 Sets the layout manager for this widget to layout. More...
 
void setLayoutDirection (Qt::LayoutDirection direction)
 
void setLocale (const QLocale &locale)
 
void setMask (const QBitmap &)
 Causes only the pixels of the widget for which bitmap has a corresponding 1 bit to be visible. More...
 
void setMask (const QRegion &)
 Causes only the parts of the widget which overlap region to be visible. More...
 
void setMaximumHeight (int maxh)
 
void setMaximumSize (const QSize &)
 
void setMaximumSize (int maxw, int maxh)
 This function corresponds to setMaximumSize(QSize(maxw, maxh)). More...
 
void setMaximumWidth (int maxw)
 
void setMinimumHeight (int minh)
 
void setMinimumSize (const QSize &)
 
void setMinimumSize (int minw, int minh)
 This function corresponds to setMinimumSize(QSize(minw, minh)). More...
 
void setMinimumWidth (int minw)
 
void setMouseTracking (bool enable)
 
void setPalette (const QPalette &)
 Use the single-argument overload instead. More...
 
void setParent (QWidget *parent)
 Sets the parent of the widget to parent, and resets the window flags. More...
 
void setParent (QWidget *parent, Qt::WindowFlags f)
 This function also takes widget flags, f as an argument. More...
 
void setShortcutAutoRepeat (int id, bool enable=true)
 If enable is true, auto repeat of the shortcut with the given id is enabled; otherwise it is disabled. More...
 
void setShortcutEnabled (int id, bool enable=true)
 If enable is true, the shortcut with the given id is enabled; otherwise the shortcut is disabled. More...
 
void setSizeIncrement (const QSize &)
 
void setSizeIncrement (int w, int h)
 Sets the x (width) size increment to w and the y (height) size increment to h. More...
 
void setSizePolicy (QSizePolicy)
 
void setSizePolicy (QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)
 Sets the size policy of the widget to horizontal and vertical, with standard stretch and no height-for-width. More...
 
void setStatusTip (const QString &)
 
void setStyle (QStyle *)
 Sets the widget's GUI style to style. More...
 
void setToolTip (const QString &)
 
void setUpdatesEnabled (bool enable)
 
void setupUi (QWidget *widget)
 Sets up the user interface for the specified widget. More...
 
void setWhatsThis (const QString &)
 
void setWindowFilePath (const QString &filePath)
 
void setWindowFlags (Qt::WindowFlags type)
 
void setWindowIcon (const QIcon &icon)
 
void setWindowIconText (const QString &)
 
void setWindowModality (Qt::WindowModality windowModality)
 
void setWindowOpacity (qreal level)
 
void setWindowRole (const QString &)
 Sets the window's role to role. More...
 
void setWindowState (Qt::WindowStates state)
 Sets the window state to windowState. More...
 
void setWindowSurface (QWindowSurface *surface)
 Sets the window surface to be the surface specified. More...
 
QSize size () const
 
QSize sizeIncrement () const
 
QSizePolicy sizePolicy () const
 
void stackUnder (QWidget *)
 Places the widget under w in the parent widget's stack. More...
 
QString statusTip () const
 
QStylestyle () const
 
QString styleSheet () const
 
bool testAttribute (Qt::WidgetAttribute) const
 Returns true if attribute attribute is set on this widget; otherwise returns false. More...
 
QString toolTip () const
 
QWidgettopLevelWidget () const
 
bool underMouse () const
 Returns true if the widget is under the mouse cursor; otherwise returns false. More...
 
void ungrabGesture (Qt::GestureType type)
 Unsubscribes the widget from a given gesture type. More...
 
void unsetCursor ()
 
void unsetLayoutDirection ()
 
void unsetLocale ()
 
void update (int x, int y, int w, int h)
 This version updates a rectangle (x, y, w, h) inside the widget. More...
 
void update (const QRect &)
 This version updates a rectangle rect inside the widget. More...
 
void update (const QRegion &)
 This version repaints a region rgn inside the widget. More...
 
void updateGeometry ()
 Notifies the layout system that this widget has changed and may need to change geometry. More...
 
bool updatesEnabled () const
 
QRegion visibleRegion () const
 Returns the unobscured region where paint events can occur. More...
 
QString whatsThis () const
 
int width () const
 
QWidgetwindow () const
 Returns the window for this widget, i.e. More...
 
QString windowFilePath () const
 
Qt::WindowFlags windowFlags () const
 Window flags are a combination of a type (e. More...
 
QIcon windowIcon () const
 
QString windowIconText () const
 
Qt::WindowModality windowModality () const
 
qreal windowOpacity () const
 
QString windowRole () const
 Returns the window's role, or an empty string. More...
 
Qt::WindowStates windowState () const
 Returns the current window state. More...
 
QWindowSurfacewindowSurface () const
 Returns the QWindowSurface this widget will be drawn into. More...
 
QString windowTitle () const
 
Qt::WindowType windowType () const
 Returns the window type of this widget. More...
 
WId winId () const
 Returns the window system identifier of the widget. More...
 
int x () const
 
const QX11Infox11Info () const
 Returns information about the configuration of the X display used to display the widget. More...
 
Qt::HANDLE x11PictureHandle () const
 Returns the X11 Picture handle of the widget for XRender support. More...
 
int y () const
 
 ~QWidget ()
 Destroys the widget. More...
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
virtual bool eventFilter (QObject *, QEvent *)
 Filters events if this object has been installed as an event filter for the watched object. More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 
- Public Functions inherited from QPaintDevice
int colorCount () const
 
int depth () const
 
int height () const
 
int heightMM () const
 
int logicalDpiX () const
 
int logicalDpiY () const
 
QT_DEPRECATED int numColors () const
 
bool paintingActive () const
 
int physicalDpiX () const
 
int physicalDpiY () const
 
int width () const
 
int widthMM () const
 
virtual ~QPaintDevice ()
 

Protected Slots

void setupViewport (QWidget *viewport)
 This slot is called by QAbstractScrollArea after setViewport(viewport) has been called. More...
 
- Protected Slots inherited from QWidget
void updateMicroFocus ()
 Updates the widget's micro focus. More...
 

Protected Functions

void contextMenuEvent (QContextMenuEvent *)
 This event handler can be reimplemented in a subclass to receive context menu events for the viewport() widget. More...
 
void dragEnterEvent (QDragEnterEvent *)
 This event handler can be reimplemented in a subclass to receive drag enter events (passed in event), for the viewport() widget. More...
 
void dragLeaveEvent (QDragLeaveEvent *)
 This event handler can be reimplemented in a subclass to receive drag leave events (passed in event), for the viewport() widget. More...
 
void dragMoveEvent (QDragMoveEvent *)
 This event handler can be reimplemented in a subclass to receive drag move events (passed in event), for the viewport() widget. More...
 
void dropEvent (QDropEvent *)
 This event handler can be reimplemented in a subclass to receive drop events (passed in event), for the viewport() widget. More...
 
bool event (QEvent *)
 Reimplemented Function More...
 
void keyPressEvent (QKeyEvent *)
 This function is called with key event e when key presses occur. More...
 
void mouseDoubleClickEvent (QMouseEvent *)
 This event handler can be reimplemented in a subclass to receive mouse double click events for the viewport() widget. More...
 
void mouseMoveEvent (QMouseEvent *)
 This event handler can be reimplemented in a subclass to receive mouse move events for the viewport() widget. More...
 
void mousePressEvent (QMouseEvent *)
 This event handler can be reimplemented in a subclass to receive mouse press events for the viewport() widget. More...
 
void mouseReleaseEvent (QMouseEvent *)
 This event handler can be reimplemented in a subclass to receive mouse release events for the viewport() widget. More...
 
void paintEvent (QPaintEvent *)
 This event handler can be reimplemented in a subclass to receive paint events (passed in event), for the viewport() widget. More...
 
 QAbstractScrollArea (QAbstractScrollAreaPrivate &dd, QWidget *parent=0)
 Creates a new QAbstractScrollAreaPrivate, dd with the given parent. More...
 
void resizeEvent (QResizeEvent *)
 This event handler can be reimplemented in a subclass to receive resize events (passed in event), for the viewport() widget. More...
 
virtual void scrollContentsBy (int dx, int dy)
 This virtual handler is called when the scroll bars are moved by dx, dy, and consequently the viewport's contents should be scrolled accordingly. More...
 
void setViewportMargins (int left, int top, int right, int bottom)
 Sets the margins around the scrolling area to left, top, right and bottom. More...
 
void setViewportMargins (const QMargins &margins)
 Sets margins around the scrolling area. More...
 
virtual bool viewportEvent (QEvent *)
 The main event handler for the scrolling area (the viewport() widget). More...
 
void wheelEvent (QWheelEvent *)
 This event handler can be reimplemented in a subclass to receive wheel events for the viewport() widget. More...
 
- Protected Functions inherited from QFrame
void changeEvent (QEvent *)
 This event handler can be reimplemented to handle state changes. More...
 
void drawFrame (QPainter *)
 em>Reimplemented Function More...
 
bool event (QEvent *e)
 Reimplemented Function More...
 
void paintEvent (QPaintEvent *)
 This event handler can be reimplemented in a subclass to receive paint events passed in event. More...
 
 QFrame (QFramePrivate &dd, QWidget *parent=0, Qt::WindowFlags f=0)
 
- Protected Functions inherited from QWidget
virtual void actionEvent (QActionEvent *)
 This event handler is called with the given event whenever the widget's actions are changed. More...
 
virtual void closeEvent (QCloseEvent *)
 This event handler is called with the given event when Qt receives a window close request for a top-level widget from the window system. More...
 
void create (WId=0, bool initializeWindow=true, bool destroyOldWindow=true)
 Creates a new widget window if window is 0, otherwise sets the widget's window to window. More...
 
void destroy (bool destroyWindow=true, bool destroySubWindows=true)
 Frees up window system resources. More...
 
virtual void enabledChange (bool)
 
virtual void enterEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive widget enter events which are passed in the event parameter. More...
 
virtual void focusInEvent (QFocusEvent *)
 This event handler can be reimplemented in a subclass to receive keyboard focus events (focus received) for the widget. More...
 
bool focusNextChild ()
 Finds a new widget to give the keyboard focus to, as appropriate for Tab, and returns true if it can find a new widget, or false if it can't. More...
 
virtual bool focusNextPrevChild (bool next)
 Finds a new widget to give the keyboard focus to, as appropriate for Tab and Shift+Tab, and returns true if it can find a new widget, or false if it can't. More...
 
virtual void focusOutEvent (QFocusEvent *)
 This event handler can be reimplemented in a subclass to receive keyboard focus events (focus lost) for the widget. More...
 
bool focusPreviousChild ()
 Finds a new widget to give the keyboard focus to, as appropriate for Shift+Tab, and returns true if it can find a new widget, or false if it can't. More...
 
virtual void fontChange (const QFont &)
 
virtual void hideEvent (QHideEvent *)
 This event handler can be reimplemented in a subclass to receive widget hide events. More...
 
virtual void inputMethodEvent (QInputMethodEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive Input Method composition events. More...
 
virtual void keyReleaseEvent (QKeyEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive key release events for the widget. More...
 
virtual void languageChange ()
 
virtual void leaveEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive widget leave events which are passed in the event parameter. More...
 
virtual bool macEvent (EventHandlerCallRef, EventRef)
 This special event handler can be reimplemented in a subclass to receive native Macintosh events. More...
 
int metric (PaintDeviceMetric) const
 Internal implementation of the virtual QPaintDevice::metric() function. More...
 
virtual void moveEvent (QMoveEvent *)
 This event handler can be reimplemented in a subclass to receive widget move events which are passed in the event parameter. More...
 
virtual void paletteChange (const QPalette &)
 
 QWidget (QWidgetPrivate &d, QWidget *parent, Qt::WindowFlags f)
 
virtual bool qwsEvent (QWSEvent *)
 This special event handler can be reimplemented in a subclass to receive native Qt for Embedded Linux events which are passed in the event parameter. More...
 
void resetInputContext ()
 This function can be called on the widget that currently has focus to reset the input method operating on it. More...
 
virtual void showEvent (QShowEvent *)
 This event handler can be reimplemented in a subclass to receive widget show events which are passed in the event parameter. More...
 
virtual void styleChange (QStyle &)
 
virtual void tabletEvent (QTabletEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive tablet events for the widget. More...
 
virtual void windowActivationChange (bool)
 
virtual bool winEvent (MSG *message, long *result)
 This special event handler can be reimplemented in a subclass to receive native Windows events which are passed in the message parameter. More...
 
virtual bool x11Event (XEvent *)
 This special event handler can be reimplemented in a subclass to receive native X11 events passed in the event parameter. More...
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 
- Protected Functions inherited from QPaintDevice
 QPaintDevice ()
 

Properties

Qt::ScrollBarPolicy horizontalScrollBarPolicy
 the policy for the horizontal scroll bar More...
 
Qt::ScrollBarPolicy verticalScrollBarPolicy
 the policy for the vertical scroll bar More...
 

Friends

class QStyleSheetStyle
 
class QWidgetPrivate
 

Additional Inherited Members

- Public Types inherited from QFrame
enum  Shadow { Plain = 0x0010, Raised = 0x0020, Sunken = 0x0030 }
 This enum type defines the types of shadow that are used to give a 3D effect to frames. More...
 
enum  Shape {
  NoFrame = 0, Box = 0x0001, Panel = 0x0002, WinPanel = 0x0003,
  HLine = 0x0004, VLine = 0x0005, StyledPanel = 0x0006
}
 This enum type defines the shapes of frame available. More...
 
enum  StyleMask { Shadow_Mask = 0x00f0, Shape_Mask = 0x000f }
 This enum defines two constants that can be used to extract the two components of frameStyle(): More...
 
- Public Types inherited from QWidget
enum  RenderFlag { DrawWindowBackground = 0x1, DrawChildren = 0x2, IgnoreMask = 0x4 }
 This enum describes how to render the widget when calling QWidget::render(). More...
 
- Public Types inherited from QPaintDevice
enum  PaintDeviceMetric {
  PdmWidth = 1, PdmHeight, PdmWidthMM, PdmHeightMM,
  PdmNumColors, PdmDepth, PdmDpiX, PdmDpiY,
  PdmPhysicalDpiX, PdmPhysicalDpiY
}
 
- Public Slots inherited from QWidget
bool close ()
 Closes this widget. More...
 
void hide ()
 Hides the widget. More...
 
void lower ()
 Lowers the widget to the bottom of the parent widget's stack. More...
 
void raise ()
 Raises this widget to the top of the parent widget's stack. More...
 
void repaint ()
 Repaints the widget directly by calling paintEvent() immediately, unless updates are disabled or the widget is hidden. More...
 
void setDisabled (bool)
 Disables widget input events if disable is true; otherwise enables input events. More...
 
void setEnabled (bool)
 
void setFocus ()
 Gives the keyboard input focus to this widget (or its focus proxy) if this widget or one of its parents is the active window. More...
 
void setHidden (bool hidden)
 Convenience function, equivalent to setVisible(!hidden). More...
 
QT_MOC_COMPAT void setShown (bool shown)
 Use setVisible(shown) instead. More...
 
void setStyleSheet (const QString &styleSheet)
 
virtual void setVisible (bool visible)
 
void setWindowModified (bool)
 
void setWindowTitle (const QString &)
 
void show ()
 Shows the widget and its child widgets. More...
 
void showFullScreen ()
 Shows the widget in full-screen mode. More...
 
void showMaximized ()
 Shows the widget maximized. More...
 
void showMinimized ()
 Shows the widget minimized, as an icon. More...
 
void showNormal ()
 Restores the widget after it has been maximized or minimized. More...
 
void update ()
 Updates the widget unless updates are disabled or the widget is hidden. More...
 
- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Signals inherited from QWidget
void customContextMenuRequested (const QPoint &pos)
 This signal is emitted when the widget's contextMenuPolicy is Qt::CustomContextMenu, and the user has requested a context menu on the widget. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 
- Static Public Functions inherited from QWidget
static QWidgetfind (WId)
 Returns a pointer to the widget with window identifer/handle id. More...
 
static QWidgetkeyboardGrabber ()
 Returns the widget that is currently grabbing the keyboard input. More...
 
static QWidgetmouseGrabber ()
 Returns the widget that is currently grabbing the mouse input. More...
 
static void setTabOrder (QWidget *, QWidget *)
 Puts the second widget after the first widget in the focus order. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 
- Static Public Functions inherited from QPaintDevice
static QWSDisplayqwsDisplay ()
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Protected Variables inherited from QPaintDevice
ushort painters
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.

QAbstractScrollArea is a low-level abstraction of a scrolling area. The area provides a central widget called the viewport, in which the contents of the area is to be scrolled (i.e, the visible parts of the contents are rendered in the viewport).

Next to the viewport is a vertical scroll bar, and below is a horizontal scroll bar. When all of the area contents fits in the viewport, each scroll bar can be either visible or hidden depending on the scroll bar's Qt::ScrollBarPolicy. When a scroll bar is hidden, the viewport expands in order to cover all available space. When a scroll bar becomes visible again, the viewport shrinks in order to make room for the scroll bar.

It is possible to reserve a margin area around the viewport, see setViewportMargins(). The feature is mostly used to place a QHeaderView widget above or beside the scrolling area. Subclasses of QAbstractScrollArea should implement margins.

When inheriting QAbstractScrollArea, you need to do the following:

With a scroll bar policy of Qt::ScrollBarAsNeeded (the default), QAbstractScrollArea shows scroll bars when they provide a non-zero scrolling range, and hides them otherwise.

The scroll bars and viewport should be updated whenever the viewport receives a resize event or the size of the contents changes. The viewport also needs to be updated when the scroll bars values change. The initial values of the scroll bars are often set when the area receives new contents.

We give a simple example, in which we have implemented a scroll area that can scroll any QWidget. We make the widget a child of the viewport; this way, we do not have to calculate which part of the widget to draw but can simply move the widget with QWidget::move(). When the area contents or the viewport size changes, we do the following:

QSize areaSize = viewport()->size();
QSize widgetSize = widget->size();
verticalScrollBar()->setRange(0, widgetSize.height() - areaSize.height());
horizontalScrollBar()->setRange(0, widgetSize.width() - areaSize.width());
updateWidgetPosition();

When the scroll bars change value, we need to update the widget position, i.e., find the part of the widget that is to be drawn in the viewport:

int hvalue = horizontalScrollBar()->value();
int vvalue = verticalScrollBar()->value();
QPoint topLeft = viewport()->rect().topLeft();
widget->move(topLeft.x() - hvalue, topLeft.y() - vvalue);

In order to track scroll bar movements, reimplement the virtual function scrollContentsBy(). In order to fine-tune scrolling behavior, connect to a scroll bar's QAbstractSlider::actionTriggered() signal and adjust the QAbstractSlider::sliderPosition as you wish.

For convenience, QAbstractScrollArea makes all viewport events available in the virtual viewportEvent() handler. QWidget's specialized handlers are remapped to viewport events in the cases where this makes sense. The remapped specialized handlers are: paintEvent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), contextMenuEvent(), and resizeEvent().

QScrollArea, which inherits QAbstractScrollArea, provides smooth scrolling for any QWidget (i.e., the widget is scrolled pixel by pixel). You only need to subclass QAbstractScrollArea if you need more specialized behavior. This is, for instance, true if the entire contents of the area is not suitable for being drawn on a QWidget or if you do not want smooth scrolling.

See also
QScrollArea

Definition at line 59 of file qabstractscrollarea.h.

Constructors and Destructors

◆ QAbstractScrollArea() [1/2]

QAbstractScrollArea::QAbstractScrollArea ( QWidget parent = 0)
explicit

Constructs a viewport.

The parent argument is sent to the QWidget constructor.

Definition at line 519 of file qabstractscrollarea.cpp.

Referenced by QTextEdit::QTextEdit().

520  :QFrame(*new QAbstractScrollAreaPrivate, parent)
521 {
523  QT_TRY {
524  d->init();
525  } QT_CATCH(...) {
526  d->viewportFilter.reset();
527  QT_RETHROW;
528  }
529 }
double d
Definition: qnumeric_p.h:62
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
QFrame(QWidget *parent=0, Qt::WindowFlags f=0)
Constructs a frame widget with frame style NoFrame and a 1-pixel frame width.
Definition: qframe.cpp:219
#define QT_RETHROW
Definition: qglobal.h:1539
#define QT_CATCH(A)
Definition: qglobal.h:1537
#define QT_TRY
Definition: qglobal.h:1536

◆ ~QAbstractScrollArea()

QAbstractScrollArea::~QAbstractScrollArea ( )

Destroys the viewport.

Definition at line 535 of file qabstractscrollarea.cpp.

536 {
538  // reset it here, otherwise we'll have a dangling pointer in ~QWidget
539  d->viewportFilter.reset();
540 }
double d
Definition: qnumeric_p.h:62
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482

◆ QAbstractScrollArea() [2/2]

QAbstractScrollArea::QAbstractScrollArea ( QAbstractScrollAreaPrivate dd,
QWidget parent = 0 
)
protected

Creates a new QAbstractScrollAreaPrivate, dd with the given parent.

Warning
This function is not part of the public interface.

Definition at line 502 of file qabstractscrollarea.cpp.

503  :QFrame(dd, parent)
504 {
506  QT_TRY {
507  d->init();
508  } QT_CATCH(...) {
509  d->viewportFilter.reset();
510  QT_RETHROW;
511  }
512 }
double d
Definition: qnumeric_p.h:62
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
QFrame(QWidget *parent=0, Qt::WindowFlags f=0)
Constructs a frame widget with frame style NoFrame and a 1-pixel frame width.
Definition: qframe.cpp:219
#define QT_RETHROW
Definition: qglobal.h:1539
#define QT_CATCH(A)
Definition: qglobal.h:1537
#define QT_TRY
Definition: qglobal.h:1536

Functions

◆ addScrollBarWidget()

void QAbstractScrollArea::addScrollBarWidget ( QWidget widget,
Qt::Alignment  alignment 
)

Adds widget as a scroll bar widget in the location specified by alignment.

Since
4.2

Scroll bar widgets are shown next to the horizontal or vertical scroll bar, and can be placed on either side of it. If you want the scroll bar widgets to be always visible, set the scrollBarPolicy for the corresponding scroll bar to AlwaysOn.

alignment must be one of Qt::Alignleft and Qt::AlignRight, which maps to the horizontal scroll bar, or Qt::AlignTop and Qt::AlignBottom, which maps to the vertical scroll bar.

A scroll bar widget can be removed by either re-parenting the widget or deleting it. It's also possible to hide a widget with QWidget::hide()

The scroll bar widget will be resized to fit the scroll bar geometry for the current style. The following describes the case for scroll bar widgets on the horizontal scroll bar:

The height of the widget will be set to match the height of the scroll bar. To control the width of the widget, use QWidget::setMinimumWidth and QWidget::setMaximumWidth, or implement QWidget::sizeHint() and set a horizontal size policy. If you want a square widget, call QStyle::pixelMetric(QStyle::PM_ScrollBarExtent) and set the width to this value.

See also
scrollBarWidgets()

Definition at line 850 of file qabstractscrollarea.cpp.

851 {
853 
854  if (widget == 0)
855  return;
856 
858  = ((alignment & Qt::AlignLeft) || (alignment & Qt::AlignRight)) ? Qt::Horizontal : Qt::Vertical;
860  = ((alignment & Qt::AlignRight) || (alignment & Qt::AlignBottom))
862  d->scrollBarContainers[scrollBarOrientation]->addWidget(widget, position);
863  d->layoutChildren();
864  if (isHidden() == false)
865  widget->show();
866 }
double d
Definition: qnumeric_p.h:62
static qreal position(QGraphicsObject *item, QDeclarativeAnchorLine::AnchorLine anchorLine)
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
bool isHidden() const
Returns true if the widget is hidden, otherwise returns false.
Definition: qwidget.h:1008
void show()
Shows the widget and its child widgets.
static Qt::Orientation scrollBarOrientation(const QAInterface &scrollBar)
Orientation
Definition: qnamespace.h:174

◆ contextMenuEvent()

void QAbstractScrollArea::contextMenuEvent ( QContextMenuEvent e)
protectedvirtual

This event handler can be reimplemented in a subclass to receive context menu events for the viewport() widget.

The event is passed in e.

See also
QWidget::contextMenuEvent()

Reimplemented from QWidget.

Reimplemented in QTextEdit, and QPlainTextEdit.

Definition at line 1205 of file qabstractscrollarea.cpp.

Referenced by QPlainTextEdit::toPlainText().

1206 {
1207  e->ignore();
1208 }
void ignore()
Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).
Definition: qcoreevent.h:310

◆ cornerWidget()

QWidget * QAbstractScrollArea::cornerWidget ( ) const

Returns the widget in the corner between the two scroll bars.

Since
4.2

By default, no corner widget is present.

Definition at line 759 of file qabstractscrollarea.cpp.

Referenced by QAccessibleAbstractScrollArea::accessibleChildren(), QAccessibleAbstractScrollArea::elementType(), QAccessibleAbstractScrollArea::navigate(), and QColumnView::setResizeGripsVisible().

760 {
761  Q_D(const QAbstractScrollArea);
762  return d->cornerWidget;
763 }
double d
Definition: qnumeric_p.h:62
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482

◆ dragEnterEvent()

void QAbstractScrollArea::dragEnterEvent ( QDragEnterEvent event)
protectedvirtual

This event handler can be reimplemented in a subclass to receive drag enter events (passed in event), for the viewport() widget.

See also
QWidget::dragEnterEvent()

Reimplemented from QWidget.

Reimplemented in QTextEdit, and QPlainTextEdit.

Definition at line 1284 of file qabstractscrollarea.cpp.

Referenced by QPlainTextEdit::toPlainText().

1285 {
1286 }

◆ dragLeaveEvent()

void QAbstractScrollArea::dragLeaveEvent ( QDragLeaveEvent event)
protectedvirtual

This event handler can be reimplemented in a subclass to receive drag leave events (passed in event), for the viewport() widget.

See also
QWidget::dragLeaveEvent()

Reimplemented from QWidget.

Reimplemented in QTextEdit, and QPlainTextEdit.

Definition at line 1308 of file qabstractscrollarea.cpp.

Referenced by QPlainTextEdit::toPlainText().

1309 {
1310 }

◆ dragMoveEvent()

void QAbstractScrollArea::dragMoveEvent ( QDragMoveEvent event)
protectedvirtual

This event handler can be reimplemented in a subclass to receive drag move events (passed in event), for the viewport() widget.

See also
QWidget::dragMoveEvent()

Reimplemented from QWidget.

Reimplemented in QTextEdit, and QPlainTextEdit.

Definition at line 1296 of file qabstractscrollarea.cpp.

Referenced by QPlainTextEdit::toPlainText().

1297 {
1298 }

◆ dropEvent()

void QAbstractScrollArea::dropEvent ( QDropEvent event)
protectedvirtual

This event handler can be reimplemented in a subclass to receive drop events (passed in event), for the viewport() widget.

See also
QWidget::dropEvent()

Reimplemented from QWidget.

Reimplemented in QTextEdit, and QPlainTextEdit.

Definition at line 1320 of file qabstractscrollarea.cpp.

Referenced by QPlainTextEdit::toPlainText().

1321 {
1322 }

◆ event()

bool QAbstractScrollArea::event ( QEvent event)
protectedvirtual

Reimplemented Function

This is the main event handler for the QAbstractScrollArea widget (not the scrolling area viewport()). The specified event is a general event object that may need to be cast to the appropriate class depending on its type.

See also
QEvent::type()

Reimplemented from QWidget.

Reimplemented in QCalendarView, QTextEdit, QPlainTextEdit, QMdiArea, QTextBrowser, and QScrollArea.

Definition at line 951 of file qabstractscrollarea.cpp.

Referenced by QScrollArea::event(), QMdiArea::event(), QPlainTextEdit::event(), QGraphicsView::event(), QTextEdit::event(), QAbstractItemView::event(), QPlainTextEdit::toPlainText(), and viewportEvent().

952 {
954  switch (e->type()) {
956  // There was a chance that with accessibility client we get an
957  // event before the viewport was created.
958  // Also, in some cases we might get here from QWidget::event() virtual function which is (indirectly) called
959  // from the viewport constructor at the time when the d->viewport is not yet initialized even without any
960  // accessibility client. See qabstractscrollarea autotest for a test case.
961  if (d->viewport)
962  d->viewport->setAcceptDrops(acceptDrops());
963  break;
965  d->viewport->setMouseTracking(hasMouseTracking());
966  break;
967  case QEvent::Resize:
968  d->layoutChildren();
969  break;
970  case QEvent::Paint: {
971  QStyleOption option;
972  option.initFrom(this);
973  if (d->cornerPaintingRect.isValid()) {
974  option.rect = d->cornerPaintingRect;
975  QPainter p(this);
977  }
978 #ifdef Q_WS_MAC
979  if (d->reverseCornerPaintingRect.isValid()) {
980  option.rect = d->reverseCornerPaintingRect;
981  QPainter p(this);
983  }
984 #endif
985  }
987  break;
988 #ifndef QT_NO_CONTEXTMENU
989  case QEvent::ContextMenu:
990  if (static_cast<QContextMenuEvent *>(e)->reason() == QContextMenuEvent::Keyboard)
991  return QFrame::event(e);
992  e->ignore();
993  break;
994 #endif // QT_NO_CONTEXTMENU
998  case QEvent::MouseMove:
999  case QEvent::Wheel:
1000 #ifndef QT_NO_DRAGANDDROP
1001  case QEvent::Drop:
1002  case QEvent::DragEnter:
1003  case QEvent::DragMove:
1004  case QEvent::DragLeave:
1005 #endif
1006  // ignore touch events in case they have been propagated from the viewport
1007  case QEvent::TouchBegin:
1008  case QEvent::TouchUpdate:
1009  case QEvent::TouchEnd:
1010  return false;
1011 #ifndef QT_NO_GESTURES
1012  case QEvent::Gesture:
1013  {
1014  QGestureEvent *ge = static_cast<QGestureEvent *>(e);
1015  QPanGesture *g = static_cast<QPanGesture *>(ge->gesture(Qt::PanGesture));
1016  if (g) {
1017  QScrollBar *hBar = horizontalScrollBar();
1018  QScrollBar *vBar = verticalScrollBar();
1019  QPointF delta = g->delta();
1020  if (!delta.isNull()) {
1022  delta.rx() *= -1;
1023  int newX = hBar->value() - delta.x();
1024  int newY = vBar->value() - delta.y();
1025  hBar->setValue(newX);
1026  vBar->setValue(newY);
1027  }
1028  return true;
1029  }
1030  return false;
1031  }
1032 #endif // QT_NO_GESTURES
1033  case QEvent::StyleChange:
1036  case QEvent::LayoutRequest:
1037  d->layoutChildren();
1038  // fall through
1039  default:
1040  return QFrame::event(e);
1041  }
1042  return true;
1043 }
The QPainter class performs low-level painting on widgets and other paint devices.
Definition: qpainter.h:86
double d
Definition: qnumeric_p.h:62
void paintEvent(QPaintEvent *)
This event handler can be reimplemented in a subclass to receive paint events passed in event...
Definition: qframe.cpp:527
The QPanGesture class describes a panning gesture made by the user.
Definition: qgesture.h:107
bool acceptDrops() const
The QPointF class defines a point in the plane using floating point precision.
Definition: qpoint.h:214
QScrollBar * verticalScrollBar() const
Returns the vertical scroll bar.
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
QPointF delta
the offset from the previous input position to the current input
Definition: qgesture.h:114
#define Q_D(Class)
Definition: qglobal.h:2482
qreal x() const
Returns the x-coordinate of this point.
Definition: qpoint.h:282
QStyle * style() const
Definition: qwidget.cpp:2742
The QScrollBar widget provides a vertical or horizontal scroll bar.
Definition: qscrollbar.h:59
int value() const
qreal & rx()
Returns a reference to the x coordinate of this point.
Definition: qpoint.h:302
The QGestureEvent class provides the description of triggered gestures.
Definition: qevent.h:841
The QStyleOption class stores the parameters used by QStyle functions.
Definition: qstyleoption.h:67
void initFrom(const QWidget *w)
Definition: qstyleoption.h:99
virtual void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p, const QWidget *w=0) const =0
Draws the given primitive element with the provided painter using the style options specified by opti...
bool hasMouseTracking() const
Definition: qwidget.h:993
bool event(QEvent *e)
Reimplemented Function
Definition: qframe.cpp:587
QScrollBar * horizontalScrollBar() const
Returns the horizontal scroll bar.
bool isNull() const
Returns true if both the x and y coordinates are set to +0.
Definition: qpoint.h:277
qreal y() const
Returns the y-coordinate of this point.
Definition: qpoint.h:287
QGesture * gesture(Qt::GestureType type) const
Returns a gesture object by type.
Definition: qevent.cpp:4881
The QPaintEvent class contains event parameters for paint events.
Definition: qevent.h:298
static bool isRightToLeft()
Returns true if the application&#39;s layout direction is Qt::RightToLeft; otherwise returns false...
Definition: qapplication.h:233
QRect rect
the area that should be used for various calculations and painting
Definition: qstyleoption.h:90

◆ horizontalScrollBar()

QScrollBar * QAbstractScrollArea::horizontalScrollBar ( ) const

◆ horizontalScrollBarPolicy()

Qt::ScrollBarPolicy QAbstractScrollArea::horizontalScrollBarPolicy ( ) const

◆ keyPressEvent()

void QAbstractScrollArea::keyPressEvent ( QKeyEvent e)
protectedvirtual

This function is called with key event e when key presses occur.

It handles PageUp, PageDown, Up, Down, Left, and Right, and ignores all other key presses.

Reimplemented from QWidget.

Reimplemented in QCalendarView, QTextEdit, QPlainTextEdit, and QTextBrowser.

Definition at line 1216 of file qabstractscrollarea.cpp.

Referenced by QPlainTextEdit::keyPressEvent(), QGraphicsView::keyPressEvent(), QTextEdit::keyPressEvent(), and QPlainTextEdit::toPlainText().

1217 {
1219  if (false){
1220 #ifndef QT_NO_SHORTCUT
1221  } else if (e == QKeySequence::MoveToPreviousPage) {
1222  d->vbar->triggerAction(QScrollBar::SliderPageStepSub);
1223  } else if (e == QKeySequence::MoveToNextPage) {
1224  d->vbar->triggerAction(QScrollBar::SliderPageStepAdd);
1225 #endif
1226  } else {
1227 #ifdef QT_KEYPAD_NAVIGATION
1228  if (QApplication::keypadNavigationEnabled() && !hasEditFocus()) {
1229  e->ignore();
1230  return;
1231  }
1232 #endif
1233  switch (e->key()) {
1234  case Qt::Key_Up:
1235  d->vbar->triggerAction(QScrollBar::SliderSingleStepSub);
1236  break;
1237  case Qt::Key_Down:
1238  d->vbar->triggerAction(QScrollBar::SliderSingleStepAdd);
1239  break;
1240  case Qt::Key_Left:
1241 #ifdef QT_KEYPAD_NAVIGATION
1242  if (QApplication::keypadNavigationEnabled() && hasEditFocus()
1243  && (!d->hbar->isVisible() || d->hbar->value() == d->hbar->minimum())) {
1244  //if we aren't using the hbar or we are already at the leftmost point ignore
1245  e->ignore();
1246  return;
1247  }
1248 #endif
1249  d->hbar->triggerAction(
1252  break;
1253  case Qt::Key_Right:
1254 #ifdef QT_KEYPAD_NAVIGATION
1255  if (QApplication::keypadNavigationEnabled() && hasEditFocus()
1256  && (!d->hbar->isVisible() || d->hbar->value() == d->hbar->maximum())) {
1257  //if we aren't using the hbar or we are already at the rightmost point ignore
1258  e->ignore();
1259  return;
1260  }
1261 #endif
1262  d->hbar->triggerAction(
1264  ? QScrollBar::SliderSingleStepAdd : QScrollBar::SliderSingleStepSub);
1265  break;
1266  default:
1267  e->ignore();
1268  return;
1269  }
1270  }
1271  e->accept();
1272 }
double d
Definition: qnumeric_p.h:62
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
int key() const
Returns the code of the key that was pressed or released.
Definition: qevent.h:231
Qt::LayoutDirection layoutDirection() const
void ignore()
Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).
Definition: qcoreevent.h:310
void accept()
Sets the accept flag of the event object, the equivalent of calling setAccepted(true).
Definition: qcoreevent.h:309

◆ maximumViewportSize()

QSize QAbstractScrollArea::maximumViewportSize ( ) const

Returns the size of the viewport as if the scroll bars had no valid scrolling range.

Definition at line 600 of file qabstractscrollarea.cpp.

Referenced by QTableView::updateGeometries().

601 {
602  Q_D(const QAbstractScrollArea);
603  int hsbExt = d->hbar->sizeHint().height();
604  int vsbExt = d->vbar->sizeHint().width();
605 
606  int f = 2 * d->frameWidth;
607  QSize max = size() - QSize(f + d->left + d->right, f + d->top + d->bottom);
608  if (d->vbarpolicy == Qt::ScrollBarAlwaysOn)
609  max.rwidth() -= vsbExt;
610  if (d->hbarpolicy == Qt::ScrollBarAlwaysOn)
611  max.rheight() -= hsbExt;
612  return max;
613 }
double d
Definition: qnumeric_p.h:62
QSize size() const
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
int & rheight()
Returns a reference to the height.
Definition: qsize.h:144
The QSize class defines the size of a two-dimensional object using integer point precision.
Definition: qsize.h:53
int & rwidth()
Returns a reference to the width.
Definition: qsize.h:141

◆ minimumSizeHint()

QSize QAbstractScrollArea::minimumSizeHint ( ) const
virtual

Reimplemented Function

Reimplemented from QWidget.

Reimplemented in QMdiArea.

Definition at line 1397 of file qabstractscrollarea.cpp.

Referenced by QMdiArea::minimumSizeHint().

1398 {
1399  Q_D(const QAbstractScrollArea);
1400  int hsbExt = d->hbar->sizeHint().height();
1401  int vsbExt = d->vbar->sizeHint().width();
1402  int extra = 2 * d->frameWidth;
1403  QStyleOption opt;
1404  opt.initFrom(this);
1405  if ((d->frameStyle != QFrame::NoFrame)
1407  extra += style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarSpacing, &opt, this);
1408  }
1409  return QSize(d->scrollBarContainers[Qt::Horizontal]->sizeHint().width() + vsbExt + extra,
1410  d->scrollBarContainers[Qt::Vertical]->sizeHint().height() + hsbExt + extra);
1411 }
double d
Definition: qnumeric_p.h:62
virtual int pixelMetric(PixelMetric metric, const QStyleOption *option=0, const QWidget *widget=0) const =0
Returns the value of the given pixel metric.
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
QStyle * style() const
Definition: qwidget.cpp:2742
The QStyleOption class stores the parameters used by QStyle functions.
Definition: qstyleoption.h:67
void initFrom(const QWidget *w)
Definition: qstyleoption.h:99
const char * styleHint(const QFontDef &request)
The QSize class defines the size of a two-dimensional object using integer point precision.
Definition: qsize.h:53

◆ mouseDoubleClickEvent()

void QAbstractScrollArea::mouseDoubleClickEvent ( QMouseEvent e)
protectedvirtual

This event handler can be reimplemented in a subclass to receive mouse double click events for the viewport() widget.

The event is passed in e.

See also
QWidget::mouseDoubleClickEvent()

Reimplemented from QWidget.

Reimplemented in QCalendarView, QTextEdit, and QPlainTextEdit.

Definition at line 1162 of file qabstractscrollarea.cpp.

Referenced by QPlainTextEdit::toPlainText().

1163 {
1164  e->ignore();
1165 }
void ignore()
Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).
Definition: qcoreevent.h:310

◆ mouseMoveEvent()

void QAbstractScrollArea::mouseMoveEvent ( QMouseEvent e)
protectedvirtual

This event handler can be reimplemented in a subclass to receive mouse move events for the viewport() widget.

The event is passed in e.

See also
QWidget::mouseMoveEvent()

Reimplemented from QWidget.

Reimplemented in QCalendarView, QTextEdit, QPlainTextEdit, and QTextBrowser.

Definition at line 1174 of file qabstractscrollarea.cpp.

Referenced by QPlainTextEdit::toPlainText().

1175 {
1176  e->ignore();
1177 }
void ignore()
Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).
Definition: qcoreevent.h:310

◆ mousePressEvent()

void QAbstractScrollArea::mousePressEvent ( QMouseEvent e)
protectedvirtual

This event handler can be reimplemented in a subclass to receive mouse press events for the viewport() widget.

The event is passed in e.

See also
QWidget::mousePressEvent()

Reimplemented from QWidget.

Reimplemented in QCalendarView, QTextEdit, QPlainTextEdit, and QTextBrowser.

Definition at line 1138 of file qabstractscrollarea.cpp.

Referenced by QPlainTextEdit::toPlainText().

1139 {
1140  e->ignore();
1141 }
void ignore()
Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).
Definition: qcoreevent.h:310

◆ mouseReleaseEvent()

void QAbstractScrollArea::mouseReleaseEvent ( QMouseEvent e)
protectedvirtual

This event handler can be reimplemented in a subclass to receive mouse release events for the viewport() widget.

The event is passed in e.

See also
QWidget::mouseReleaseEvent()

Reimplemented from QWidget.

Reimplemented in QCalendarView, QTextEdit, QPlainTextEdit, and QTextBrowser.

Definition at line 1150 of file qabstractscrollarea.cpp.

Referenced by QPlainTextEdit::toPlainText().

1151 {
1152  e->ignore();
1153 }
void ignore()
Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).
Definition: qcoreevent.h:310

◆ paintEvent()

void QAbstractScrollArea::paintEvent ( QPaintEvent event)
protectedvirtual

This event handler can be reimplemented in a subclass to receive paint events (passed in event), for the viewport() widget.

Note
If you open a painter, make sure to open it on the viewport().
See also
QWidget::paintEvent()

Reimplemented from QWidget.

Reimplemented in QTextEdit, QPlainTextEdit, QMdiArea, QTextBrowser, QComboBoxListView, and QScriptEdit.

Definition at line 1127 of file qabstractscrollarea.cpp.

Referenced by QGraphicsView::paintEvent(), and QPlainTextEdit::toPlainText().

1128 {
1129 }

◆ resizeEvent()

void QAbstractScrollArea::resizeEvent ( QResizeEvent event)
protectedvirtual

This event handler can be reimplemented in a subclass to receive resize events (passed in event), for the viewport() widget.

When resizeEvent() is called, the viewport already has its new geometry: Its new size is accessible through the QResizeEvent::size() function, and the old size through QResizeEvent::oldSize().

See also
QWidget::resizeEvent()

Reimplemented from QWidget.

Reimplemented in QTextEdit, QPlainTextEdit, QMdiArea, QScriptEdit, QComboBoxListView, and QScrollArea.

Definition at line 1113 of file qabstractscrollarea.cpp.

Referenced by QColumnViewPreviewColumn::resizeEvent(), QGraphicsView::resizeEvent(), QAbstractItemView::resizeEvent(), and QPlainTextEdit::toPlainText().

1114 {
1115 }

◆ scrollBarWidgets()

QWidgetList QAbstractScrollArea::scrollBarWidgets ( Qt::Alignment  alignment)

Returns a list of the currently set scroll bar widgets.

Since
4.2 alignment can be any combination of the four location flags.
See also
addScrollBarWidget()

Definition at line 878 of file qabstractscrollarea.cpp.

879 {
881 
882  QWidgetList list;
883 
884  if (alignment & Qt::AlignLeft)
885  list += d->scrollBarContainers[Qt::Horizontal]->widgets(QAbstractScrollAreaScrollBarContainer::LogicalLeft);
886  if (alignment & Qt::AlignRight)
887  list += d->scrollBarContainers[Qt::Horizontal]->widgets(QAbstractScrollAreaScrollBarContainer::LogicalRight);
888  if (alignment & Qt::AlignTop)
889  list += d->scrollBarContainers[Qt::Vertical]->widgets(QAbstractScrollAreaScrollBarContainer::LogicalLeft);
890  if (alignment & Qt::AlignBottom)
891  list += d->scrollBarContainers[Qt::Vertical]->widgets(QAbstractScrollAreaScrollBarContainer::LogicalRight);
892 
893  return list;
894 }
double d
Definition: qnumeric_p.h:62
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
The QList class is a template class that provides lists.
Definition: qdatastream.h:62

◆ scrollContentsBy()

void QAbstractScrollArea::scrollContentsBy ( int  dx,
int  dy 
)
protectedvirtual

This virtual handler is called when the scroll bars are moved by dx, dy, and consequently the viewport's contents should be scrolled accordingly.

The default implementation simply calls update() on the entire viewport(), subclasses can reimplement this handler for optimization purposes, or - like QScrollArea - to move a contents widget. The parameters dx and dy are there for convenience, so that the class knows how much should be scrolled (useful e.g. when doing pixel-shifts). You may just as well ignore these values and scroll directly to the position the scroll bars indicate.

Calling this function in order to scroll programmatically is an error, use the scroll bars instead (e.g. by calling QScrollBar::setValue() directly).

Reimplemented in QTextEdit, QGraphicsView, QPlainTextEdit, QHeaderView, QTreeView, QMdiArea, QTableView, QListView, QColumnView, and QScrollArea.

Definition at line 1345 of file qabstractscrollarea.cpp.

Referenced by QColumnView::scrollContentsBy(), and QPlainTextEdit::toPlainText().

1346 {
1347  viewport()->update();
1348 }
void update()
Updates the widget unless updates are disabled or the widget is hidden.
Definition: qwidget.cpp:10883
QWidget * viewport() const
Returns the viewport widget.

◆ setCornerWidget()

void QAbstractScrollArea::setCornerWidget ( QWidget widget)

Sets the widget in the corner between the two scroll bars to be widget.

Since
4.2

You will probably also want to set at least one of the scroll bar modes to AlwaysOn.

Passing 0 shows no widget in the corner.

Any previous corner widget is hidden.

You may call setCornerWidget() with the same widget at different times.

All widgets set here will be deleted by the scroll area when it is destroyed unless you separately reparent the widget after setting some other corner widget (or 0).

Any newly set widget should have no current parent.

By default, no corner widget is present.

See also
horizontalScrollBarPolicy, horizontalScrollBarPolicy

Definition at line 794 of file qabstractscrollarea.cpp.

Referenced by QColumnViewPrivate::createColumn(), and QColumnView::setResizeGripsVisible().

795 {
797  QWidget* oldWidget = d->cornerWidget;
798  if (oldWidget != widget) {
799  if (oldWidget)
800  oldWidget->hide();
801  d->cornerWidget = widget;
802 
803  if (widget && widget->parentWidget() != this)
804  widget->setParent(this);
805 
806  d->layoutChildren();
807  if (widget)
808  widget->show();
809  } else {
810  d->cornerWidget = widget;
811  d->layoutChildren();
812  }
813 }
double d
Definition: qnumeric_p.h:62
QWidget * parentWidget() const
Returns the parent of this widget, or 0 if it does not have any parent widget.
Definition: qwidget.h:1035
void setParent(QWidget *parent)
Sets the parent of the widget to parent, and resets the window flags.
Definition: qwidget.cpp:10479
QPointer< QWidget > widget
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
void show()
Shows the widget and its child widgets.
void hide()
Hides the widget.
Definition: qwidget.h:501

◆ setHorizontalScrollBar()

void QAbstractScrollArea::setHorizontalScrollBar ( QScrollBar scrollBar)

Replaces the existing horizontal scroll bar with scrollBar, and sets all the former scroll bar's slider properties on the new scroll bar.

Since
4.2

The former scroll bar is then deleted.

QAbstractScrollArea already provides horizontal and vertical scroll bars by default. You can call this function to replace the default horizontal scroll bar with your own custom scroll bar.

See also
horizontalScrollBar(), setVerticalScrollBar()

Definition at line 738 of file qabstractscrollarea.cpp.

739 {
741  if (!scrollBar) {
742  qWarning("QAbstractScrollArea::setHorizontalScrollBar: Cannot set a null scroll bar");
743  return;
744  }
745 
746  d->replaceScrollBar(scrollBar, Qt::Horizontal);
747 }
double d
Definition: qnumeric_p.h:62
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
Q_CORE_EXPORT void qWarning(const char *,...)

◆ setHorizontalScrollBarPolicy()

void QAbstractScrollArea::setHorizontalScrollBarPolicy ( Qt::ScrollBarPolicy  policy)

Definition at line 700 of file qabstractscrollarea.cpp.

Referenced by QHeaderView::initialize(), QColumnView::initializeColumn(), QCompleter::popup(), QCalendarView::QCalendarView(), QMdiArea::QMdiArea(), and QComboBoxPrivateContainer::setItemView().

701 {
703  const Qt::ScrollBarPolicy oldPolicy = d->hbarpolicy;
704  d->hbarpolicy = policy;
705  if (isVisible())
706  d->layoutChildren();
707  if (oldPolicy != d->hbarpolicy)
708  d->scrollBarPolicyChanged(Qt::Horizontal, d->hbarpolicy);
709 }
double d
Definition: qnumeric_p.h:62
bool isVisible() const
Definition: qwidget.h:1005
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
ScrollBarPolicy
Definition: qnamespace.h:1420

◆ setupViewport

void QAbstractScrollArea::setupViewport ( QWidget viewport)
protectedslot

This slot is called by QAbstractScrollArea after setViewport(viewport) has been called.

Reimplement this function in a subclass of QAbstractScrollArea to initialize the new viewport before it is used.

See also
setViewport()

Definition at line 1435 of file qabstractscrollarea.cpp.

1436 {
1437  Q_UNUSED(viewport);
1438 }
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
Definition: qglobal.h:1729

◆ setVerticalScrollBar()

void QAbstractScrollArea::setVerticalScrollBar ( QScrollBar scrollBar)

Replaces the existing vertical scroll bar with scrollBar, and sets all the former scroll bar's slider properties on the new scroll bar.

Since
4.2 The former scroll bar is then deleted.

QAbstractScrollArea already provides vertical and horizontal scroll bars by default. You can call this function to replace the default vertical scroll bar with your own custom scroll bar.

See also
verticalScrollBar(), setHorizontalScrollBar()

Definition at line 671 of file qabstractscrollarea.cpp.

672 {
674  if (!scrollBar) {
675  qWarning("QAbstractScrollArea::setVerticalScrollBar: Cannot set a null scroll bar");
676  return;
677  }
678 
679  d->replaceScrollBar(scrollBar, Qt::Vertical);
680 }
double d
Definition: qnumeric_p.h:62
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
Q_CORE_EXPORT void qWarning(const char *,...)

◆ setVerticalScrollBarPolicy()

void QAbstractScrollArea::setVerticalScrollBarPolicy ( Qt::ScrollBarPolicy  policy)

Definition at line 633 of file qabstractscrollarea.cpp.

Referenced by QHeaderView::initialize(), QColumnView::initializeColumn(), QCalendarView::QCalendarView(), QMdiArea::QMdiArea(), QComboBox::setEditable(), and QComboBoxPrivateContainer::setItemView().

634 {
636  const Qt::ScrollBarPolicy oldPolicy = d->vbarpolicy;
637  d->vbarpolicy = policy;
638  if (isVisible())
639  d->layoutChildren();
640  if (oldPolicy != d->vbarpolicy)
641  d->scrollBarPolicyChanged(Qt::Vertical, d->vbarpolicy);
642 }
double d
Definition: qnumeric_p.h:62
bool isVisible() const
Definition: qwidget.h:1005
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
ScrollBarPolicy
Definition: qnamespace.h:1420

◆ setViewport()

void QAbstractScrollArea::setViewport ( QWidget widget)

Sets the viewport to be the given widget.

Since
4.2

The QAbstractScrollArea will take ownership of the given widget.

If widget is 0, QAbstractScrollArea will assign a new QWidget instance for the viewport.

See also
viewport()

Definition at line 556 of file qabstractscrollarea.cpp.

Referenced by QGraphicsView::QGraphicsView(), and QMdiArea::QMdiArea().

557 {
559  if (widget != d->viewport) {
560  QWidget *oldViewport = d->viewport;
561  if (!widget)
562  widget = new QWidget;
563  d->viewport = widget;
564  d->viewport->setParent(this);
565  d->viewport->setFocusProxy(this);
566  d->viewport->installEventFilter(d->viewportFilter.data());
567 #ifndef Q_WS_MAC
568 #ifndef QT_NO_GESTURES
569  d->viewport->grabGesture(Qt::PanGesture);
570 #endif
571 #endif
572  d->layoutChildren();
573  if (isVisible())
574  d->viewport->show();
575  QMetaObject::invokeMethod(this, "setupViewport", Q_ARG(QWidget *, widget));
576  delete oldViewport;
577  }
578 }
double d
Definition: qnumeric_p.h:62
QPointer< QWidget > widget
bool isVisible() const
Definition: qwidget.h:1005
The QWidget class is the base class of all user interface objects.
Definition: qwidget.h:150
#define Q_ARG(type, data)
Definition: qobjectdefs.h:246
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
QWidget(QWidget *parent=0, Qt::WindowFlags f=0)
Constructs a widget which is a child of parent, with widget flags set to f.
Definition: qwidget.cpp:1189
static bool invokeMethod(QObject *obj, const char *member, Qt::ConnectionType, QGenericReturnArgument ret, QGenericArgument val0=QGenericArgument(0), QGenericArgument val1=QGenericArgument(), QGenericArgument val2=QGenericArgument(), QGenericArgument val3=QGenericArgument(), QGenericArgument val4=QGenericArgument(), QGenericArgument val5=QGenericArgument(), QGenericArgument val6=QGenericArgument(), QGenericArgument val7=QGenericArgument(), QGenericArgument val8=QGenericArgument(), QGenericArgument val9=QGenericArgument())
Invokes the member (a signal or a slot name) on the object obj.

◆ setViewportMargins() [1/2]

void QAbstractScrollArea::setViewportMargins ( int  left,
int  top,
int  right,
int  bottom 
)
protected

Sets the margins around the scrolling area to left, top, right and bottom.

This is useful for applications such as spreadsheets with "locked" rows and columns. The marginal space is is left blank; put widgets in the unused area.

Note that this function is frequently called by QTreeView and QTableView, so margins must be implemented by QAbstractScrollArea subclasses. Also, if the subclasses are to be used in item views, they should not call this function.

By default all margins are zero.

Definition at line 910 of file qabstractscrollarea.cpp.

Referenced by setViewportMargins(), QScriptEdit::updateExtraAreaWidth(), QTableView::updateGeometries(), and QTreeView::updateGeometries().

911 {
913  d->left = left;
914  d->top = top;
915  d->right = right;
916  d->bottom = bottom;
917  d->layoutChildren();
918 }
double d
Definition: qnumeric_p.h:62
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
Q_CORE_EXPORT QTextStream & right(QTextStream &s)
Q_CORE_EXPORT QTextStream & left(QTextStream &s)

◆ setViewportMargins() [2/2]

void QAbstractScrollArea::setViewportMargins ( const QMargins margins)
protected

Sets margins around the scrolling area.

Since
4.6 This is useful for applications such as spreadsheets with "locked" rows and columns. The marginal space is is left blank; put widgets in the unused area.

By default all margins are zero.

Definition at line 933 of file qabstractscrollarea.cpp.

934 {
935  setViewportMargins(margins.left(), margins.top(),
936  margins.right(), margins.bottom());
937 }
void setViewportMargins(int left, int top, int right, int bottom)
Sets the margins around the scrolling area to left, top, right and bottom.
int top() const
Returns the top margin.
Definition: qmargins.h:99
int left() const
Returns the left margin.
Definition: qmargins.h:96
int bottom() const
Returns the bottom margin.
Definition: qmargins.h:105
int right() const
Returns the right margin.
Definition: qmargins.h:102

◆ sizeHint()

QSize QAbstractScrollArea::sizeHint ( ) const
virtual

Reimplemented Function

Reimplemented from QWidget.

Reimplemented in QMdiArea, and QScrollArea.

Definition at line 1416 of file qabstractscrollarea.cpp.

Referenced by QColumnViewPrivate::createColumn(), QColumnView::sizeHint(), QGraphicsView::sizeHint(), QSidebar::sizeHint(), QFileDialogListView::sizeHint(), QTableView::sizeHintForColumn(), and QTableView::sizeHintForRow().

1417 {
1418  return QSize(256, 192);
1419 #if 0
1420  Q_D(const QAbstractScrollArea);
1421  int h = qMax(10, fontMetrics().height());
1422  int f = 2 * d->frameWidth;
1423  return QSize((6 * h) + f, (4 * h) + f);
1424 #endif
1425 }
double d
Definition: qnumeric_p.h:62
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
int height() const
Q_DECL_CONSTEXPR const T & qMax(const T &a, const T &b)
Definition: qglobal.h:1217
QFontMetrics fontMetrics() const
Returns the font metrics for the widget&#39;s current font.
Definition: qwidget.h:984
The QSize class defines the size of a two-dimensional object using integer point precision.
Definition: qsize.h:53

◆ verticalScrollBar()

QScrollBar * QAbstractScrollArea::verticalScrollBar ( ) const

◆ verticalScrollBarPolicy()

Qt::ScrollBarPolicy QAbstractScrollArea::verticalScrollBarPolicy ( ) const

◆ viewport()

QWidget * QAbstractScrollArea::viewport ( ) const

Returns the viewport widget.

Use the QScrollArea::widget() function to retrieve the contents of the viewport widget.

See also
QScrollArea::widget()

Definition at line 588 of file qabstractscrollarea.cpp.

Referenced by QTreeViewPrivate::_q_endAnimatedOperation(), QHeaderViewPrivate::_q_layoutChanged(), QHeaderViewPrivate::_q_sectionsRemoved(), QFileDialogPrivate::_q_showContextMenu(), QAbstractScrollAreaPrivate::_q_showOrHideScrollBars(), QAccessibleAbstractScrollArea::accessibleChildren(), QMdiArea::addSubWindow(), QGraphicsScenePrivate::addView(), QPlainTextEditPrivate::append(), QTreeViewPrivate::beginAnimatedOperation(), QPlainTextEditControl::blockBoundingRect(), QHeaderViewPrivate::cascadingResize(), QGraphicsView::centerOn(), QAccessibleTable2::childAt(), QAccessibleTextEdit::childAt(), QAccessibleTree::childAt(), QTreeView::collapse(), QTreeView::columnCountChanged(), QGraphicsView::contextMenuEvent(), QColumnView::createColumn(), QColumnViewPrivate::createColumn(), QTableView::currentChanged(), QTreeView::currentChanged(), QAbstractItemViewPrivate::draggablePaintPairs(), QListViewPrivate::draggablePaintPairs(), QGraphicsView::drawItems(), QAbstractItemViewPrivate::dropOn(), QAbstractItemViewPrivate::editor(), QGraphicsScenePrivate::enableMouseTrackingOnViews(), QGraphicsScenePrivate::enableTouchEventsOnViews(), QPlainTextEditPrivate::ensureCursorVisible(), QGraphicsView::ensureVisible(), QAbstractItemView::event(), QTreeViewPrivate::expandOrCollapseItemAtPos(), QAbstractItemViewPrivate::fetchMore(), QGraphicsView::fitInView(), QSidebar::focusInEvent(), QAbstractItemView::horizontalScrollbarValueChanged(), QListViewPrivate::horizontalScrollToValue(), QGraphicsView::invalidateScene(), QTreeView::mouseDoubleClickEvent(), QGraphicsView::mouseDoubleClickEvent(), QGraphicsView::mouseMoveEvent(), QGraphicsView::mousePressEvent(), QGraphicsView::mouseReleaseEvent(), QTreeView::moveCursor(), QAccessibleAbstractScrollArea::navigate(), QAccessibleItemRow::navigate(), QTreeViewPrivate::pageDown(), QTreeViewPrivate::pageUp(), QTextEditPrivate::paint(), QTreeViewPrivate::paintAlternatingRowColors(), QWidgetPrivate::paintBackground(), QComboBoxListView::paintEvent(), QTableView::paintEvent(), QListView::paintEvent(), QTreeView::paintEvent(), QPlainTextEdit::paintEvent(), QGraphicsView::paintEvent(), QTreeViewPrivate::prepareAnimatedOperation(), QGraphicsView::QGraphicsView(), QAccessibleItemRow::rect(), QAccessibleTextEdit::rect(), QAccessibleTable2Cell::rect(), QTextEditPrivate::relayoutDocument(), QPlainTextEditPrivate::relayoutDocument(), QGraphicsView::render(), QColumnViewPreviewColumn::resizeEvent(), QComboBoxListView::resizeEvent(), QHeaderViewPrivate::resizeSections(), QTreeView::rowsInserted(), QWidgetPrivate::screenGeometry(), scrollContentsBy(), QMdiArea::scrollContentsBy(), QGraphicsView::scrollContentsBy(), QColumnView::scrollTo(), QTableView::selectionChanged(), QTreeView::selectionChanged(), QTableViewPrivate::selectRow(), QDeclarativeTextInputPrivate::sendMouseEventToInputContext(), QGraphicsScene::setBackgroundBrush(), QGraphicsItem::setCursor(), QGraphicsView::setDragMode(), QGraphicsScene::setForegroundBrush(), QAbstractItemView::setIndexWidget(), QAbstractItemView::setItemDelegate(), QAbstractItemView::setItemDelegateForColumn(), QAbstractItemView::setItemDelegateForRow(), QComboBoxPrivateContainer::setItemView(), QMdiSubWindowPrivate::setMaximizeMode(), QHeaderView::setOffsetToLastSection(), QTableView::setRootIndex(), QHeaderViewPrivate::setupSectionIndicator(), QAbstractItemViewPrivate::shouldAutoScroll(), QMdiArea::showEvent(), QGraphicsScenePrivate::ungrabGesture(), QScriptEdit::updateExtraArea(), QListView::updateGeometries(), QGraphicsView::updateScene(), QScrollAreaPrivate::updateScrollBars(), QColumnViewPrivate::updateScrollbars(), QTreeViewPrivate::updateScrollBars(), QScrollAreaPrivate::updateWidgetPosition(), QAbstractItemView::verticalScrollbarValueChanged(), QListViewPrivate::verticalScrollToValue(), QAccessiblePlainTextEdit::viewport(), QAccessibleTextEdit::viewport(), QMdiArea::viewportEvent(), QHeaderView::viewportEvent(), QTreeView::viewportEvent(), QGraphicsView::viewportEvent(), and QGraphicsView::wheelEvent().

589 {
590  Q_D(const QAbstractScrollArea);
591  return d->viewport;
592 }
double d
Definition: qnumeric_p.h:62
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482

◆ viewportEvent()

bool QAbstractScrollArea::viewportEvent ( QEvent event)
protectedvirtual

The main event handler for the scrolling area (the viewport() widget).

It handles the event specified, and can be called by subclasses to provide reasonable default behavior.

Returns true to indicate to the event system that the event has been handled, and needs no further processing; otherwise returns false to indicate that the event should be propagated further.

You can reimplement this function in a subclass, but we recommend using one of the specialized event handlers instead.

Specialized handlers for viewport events are: paintEvent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), contextMenuEvent(), and resizeEvent().

Reimplemented in QAbstractItemView, QGraphicsView, QTreeView, QHeaderView, and QMdiArea.

Definition at line 1065 of file qabstractscrollarea.cpp.

Referenced by QMdiArea::viewportEvent(), QGraphicsView::viewportEvent(), and QAbstractItemView::viewportEvent().

1066 {
1067  switch (e->type()) {
1068  case QEvent::Resize:
1069  case QEvent::Paint:
1073  case QEvent::TouchBegin:
1074  case QEvent::TouchUpdate:
1075  case QEvent::TouchEnd:
1076  case QEvent::MouseMove:
1077  case QEvent::ContextMenu:
1078 #ifndef QT_NO_WHEELEVENT
1079  case QEvent::Wheel:
1080 #endif
1081 #ifndef QT_NO_DRAGANDDROP
1082  case QEvent::Drop:
1083  case QEvent::DragEnter:
1084  case QEvent::DragMove:
1085  case QEvent::DragLeave:
1086 #endif
1087  return QFrame::event(e);
1088  case QEvent::LayoutRequest:
1089 #ifndef QT_NO_GESTURES
1090  case QEvent::Gesture:
1092  return event(e);
1093 #endif
1094  default:
1095  break;
1096  }
1097  return false; // let the viewport widget handle the event
1098 }
bool event(QEvent *e)
Reimplemented Function
Definition: qframe.cpp:587
bool event(QEvent *)
Reimplemented Function

◆ wheelEvent()

void QAbstractScrollArea::wheelEvent ( QWheelEvent e)
protectedvirtual

This event handler can be reimplemented in a subclass to receive wheel events for the viewport() widget.

The event is passed in e.

See also
QWidget::wheelEvent()

Reimplemented from QWidget.

Reimplemented in QCalendarView, QTextEdit, and QPlainTextEdit.

Definition at line 1187 of file qabstractscrollarea.cpp.

Referenced by QPlainTextEdit::toPlainText(), QPlainTextEdit::wheelEvent(), QGraphicsView::wheelEvent(), and QTextEdit::wheelEvent().

1188 {
1190  if (static_cast<QWheelEvent*>(e)->orientation() == Qt::Horizontal)
1191  QApplication::sendEvent(d->hbar, e);
1192  else
1193  QApplication::sendEvent(d->vbar, e);
1194 }
double d
Definition: qnumeric_p.h:62
The QAbstractScrollArea widget provides a scrolling area with on-demand scroll bars.
#define Q_D(Class)
Definition: qglobal.h:2482
static bool sendEvent(QObject *receiver, QEvent *event)
Sends event event directly to receiver receiver, using the notify() function.

Friends and Related Functions

◆ QStyleSheetStyle

friend class QStyleSheetStyle
friend

Definition at line 134 of file qabstractscrollarea.h.

◆ QWidgetPrivate

friend class QWidgetPrivate
friend

Definition at line 135 of file qabstractscrollarea.h.

Properties

◆ horizontalScrollBarPolicy

Qt::ScrollBarPolicy QAbstractScrollArea::horizontalScrollBarPolicy
private

the policy for the horizontal scroll bar

The default policy is Qt::ScrollBarAsNeeded.

See also
verticalScrollBarPolicy

Definition at line 63 of file qabstractscrollarea.h.

Referenced by QSizeGrip::mousePressEvent().

◆ verticalScrollBarPolicy

Qt::ScrollBarPolicy QAbstractScrollArea::verticalScrollBarPolicy
private

the policy for the vertical scroll bar

The default policy is Qt::ScrollBarAsNeeded.

See also
horizontalScrollBarPolicy

Definition at line 62 of file qabstractscrollarea.h.

Referenced by QSizeGrip::mousePressEvent().


The documentation for this class was generated from the following files: