- Qt 6.12
- Qt GUI
- C++ Classes
- QPaintDeviceWindow
- Qt 6.12.0 Reference Documentation

# QPaintDeviceWindow Class

Convenience subclass of QWindow that is also a QPaintDevice. More...

Header: | `#include <QPaintDeviceWindow>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS Gui)` `target_link_libraries(mytarget PRIVATE Qt6::Gui)`
qmake: | `QT += gui`
Inherits: | QWindow and QPaintDevice
Inherited By: | QOpenGLWindow and QRasterWindow

- List of all members, including inherited members

## Public Functions

void | update(const QRect &rect)
void | update(const QRegion &region)

## Public Slots

void | update()

## Reimplemented Protected Functions

virtual void | paintEvent(QPaintEvent *event) override

## Detailed Description

QPaintDeviceWindow is like a regular QWindow, with the added functionality of being a paint device too. Whenever the content needs to be updated, the virtual paintEvent() function is called. Subclasses, that reimplement this function, can then simply open a QPainter on the window.

Note: This class cannot directly be used in applications. It rather serves as a base for subclasses like QOpenGLWindow.

See also QOpenGLWindow.

## Member Function Documentation

### `[override virtual protected]` void QPaintDeviceWindow::paintEvent(QPaintEvent *event)

Reimplements: QWindow::paintEvent(QPaintEvent *ev).

Handles paint events passed in the event parameter.

The default implementation does nothing. Reimplement this function to perform painting. If necessary, the dirty area is retrievable from the event.

### `[slot]` void QPaintDeviceWindow::update()

Marks the entire window as dirty and schedules a repaint.

Note: Subsequent calls to this function before the next paint event will get ignored.

Note: For non-exposed windows the update is deferred until the window becomes exposed again.

Note: This slot is overloaded. To connect to this slot:

     // Connect using qOverload:
     connect(sender, &SenderClass::signal,
             paintDeviceWindow, qOverload<>(&QPaintDeviceWindow::update));

     // Or using a lambda as wrapper:
     connect(sender, &SenderClass::signal,
             paintDeviceWindow, [receiver = paintDeviceWindow]() { receiver->update(); });

For more examples and approaches, see connecting to overloaded slots.

### void QPaintDeviceWindow::update(const QRect &rect)

Marks the rect of the window as dirty and schedules a repaint.

Note: Subsequent calls to this function before the next paint event will get ignored, but rect is added to the region to update.

Note: For non-exposed windows the update is deferred until the window becomes exposed again.

### void QPaintDeviceWindow::update(const QRegion &region)

Marks the region of the window as dirty and schedules a repaint.

Note: Subsequent calls to this function before the next paint event will get ignored, but region is added to the region to update.

Note: For non-exposed windows the update is deferred until the window becomes exposed again.