QSizeGrip Class

The QSizeGrip class provides a resize handle for resizing top-level windows. More...

Header: #include <QSizeGrip>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: QWidget

Public Functions

QSizeGrip(QWidget *parent)
virtual ~QSizeGrip()

Reimplemented Public Functions

virtual void setVisible(bool visible) override
virtual QSize sizeHint() const override

Reimplemented Protected Functions

virtual bool event(QEvent *event) override
virtual bool eventFilter(QObject *o, QEvent *e) override
virtual void hideEvent(QHideEvent *hideEvent) override
virtual void mouseMoveEvent(QMouseEvent *event) override
virtual void mousePressEvent(QMouseEvent *event) override
virtual void mouseReleaseEvent(QMouseEvent *mouseEvent) override
virtual void moveEvent(QMoveEvent *moveEvent) override
virtual void paintEvent(QPaintEvent *event) override
virtual void showEvent(QShowEvent *showEvent) override

Detailed Description

This widget works like the standard Windows resize handle. In the X11 version this resize handle generally works differently from the one provided by the system if the X11 window manager does not support necessary modern post-ICCCM specifications.

Put this widget anywhere in a widget tree and the user can use it to resize the top-level window or any widget with the Qt::SubWindow flag set. Generally, this should be in the lower right-hand corner.

Note that QStatusBar already uses this widget, so if you have a status bar (e.g., you are using QMainWindow), then you don't need to use this widget explicitly. The same goes for QDialog, for which you can just call QDialog::setSizeGripEnabled().

On some platforms the size grip automatically hides itself when the window is shown full screen or maximised.

Note: On macOS, size grips are no longer part of the human interface guideline, and won't show unless used in a QMdiSubWindow. Set another style on size grips that you want to be visible in main windows.

Screenshot of a Fusion style size gripA size grip widget at the bottom-right corner of a main window, shown in the Fusion widget style.

The QSizeGrip class inherits QWidget and reimplements the mousePressEvent() and mouseMoveEvent() functions to feature the resize functionality, and the paintEvent() function to render the size grip widget.

See also QStatusBar and QWidget::windowState().

Member Function Documentation

QSizeGrip::QSizeGrip(QWidget *parent)

Constructs a resize corner as a child widget of the given parent.

[virtual] QSizeGrip::~QSizeGrip()

Destroys this size grip.

[override virtual protected] bool QSizeGrip::event(QEvent *event)

Reimplements: QWidget::event(QEvent *event).

[override virtual protected] bool QSizeGrip::eventFilter(QObject *o, QEvent *e)

Reimplements: QObject::eventFilter(QObject *watched, QEvent *event).

[override virtual protected] void QSizeGrip::hideEvent(QHideEvent *hideEvent)

Reimplements: QWidget::hideEvent(QHideEvent *event).

[override virtual protected] void QSizeGrip::mouseMoveEvent(QMouseEvent *event)

Reimplements: QWidget::mouseMoveEvent(QMouseEvent *event).

Resizes the top-level widget containing this widget. The mouse move event is passed in the event parameter.

[override virtual protected] void QSizeGrip::mousePressEvent(QMouseEvent *event)

Reimplements: QWidget::mousePressEvent(QMouseEvent *event).

Receives the mouse press events for the widget, and primes the resize operation. The mouse press event is passed in the event parameter.

[override virtual protected] void QSizeGrip::mouseReleaseEvent(QMouseEvent *mouseEvent)

Reimplements: QWidget::mouseReleaseEvent(QMouseEvent *event).

[override virtual protected] void QSizeGrip::moveEvent(QMoveEvent *moveEvent)

Reimplements: QWidget::moveEvent(QMoveEvent *event).

[override virtual protected] void QSizeGrip::paintEvent(QPaintEvent *event)

Reimplements: QWidget::paintEvent(QPaintEvent *event).

Paints the resize grip.

Resize grips are usually rendered as small diagonal textured lines in the lower-right corner. The paint event is passed in the event parameter.

[override virtual] void QSizeGrip::setVisible(bool visible)

Reimplements an access function for property: QWidget::visible.

[override virtual protected] void QSizeGrip::showEvent(QShowEvent *showEvent)

Reimplements: QWidget::showEvent(QShowEvent *event).

[override virtual] QSize QSizeGrip::sizeHint() const

Reimplements an access function for property: QWidget::sizeHint.