|  | Home · Overviews · Examples |

# QPaintDevice Class Reference
[com.trolltech.qt.gui module]

The `QPaintDevice` class is the base class of objects that can be painted. More...

Inherits .

## Detailed Description

The `QPaintDevice` class is the base class of objects that can be painted.

A paint device is an abstraction of a two-dimensional space that can be drawn using a `QPainter`. Its default coordinate system has its origin located at the top-left position. X increases to the right and Y increases downwards. The unit is one pixel.

The drawing capabilities of `QPaintDevice` are currently implemented by the `QWidget`, `QImage`, `QPixmap`, `QGLPixelBuffer`, `QPicture`, and `QPrinter` subclasses.

To implement support for a new backend, you must derive from `QPaintDevice` and reimplement the virtual `paintEngine` function to tell `QPainter` which paint engine should be used to draw on this particular device. Note that you also must create a corresponding paint engine to be able to draw on the device, i.e derive from `QPaintEngine` and reimplement its virtual functions.

Warning: Qt requires that a `QApplication` object exists before any paint devices can be created. Paint devices access window system resources, and these resources are not initialized before an application object is created.

The `QPaintDevice` class provides several functions returning the various device metrics: The `depth` function returns its bit depth (number of bit planes). The `height` function returns its height in default coordinate system units (e.g. pixels for `QPixmap` and `QWidget`) while `heightMM` returns the height of the device in millimeters. Similiarily, the `width` and `widthMM` functions return the width of the device in default coordinate system units and in millimeters, respectively. Alternatively, the protected `metric` function can be used to retrieve the metric information by specifying the desired `PaintDeviceMetric` as argument.

The `logicalDpiX` and `logicalDpiY` functions return the horizontal and vertical resolution of the device in dots per inch. The `physicalDpiX` and `physicalDpiY` functions also return the resolution of the device in dots per inch, but note that if the logical and vertical resolution differ, the corresponding `QPaintEngine` must handle the mapping. Finally, the `numColors` function returns the number of different colors available for the paint device.

See also `QPaintEngine`, `QPainter`, The Coordinate System, and The Paint System.