Paint System

Qt's paint system enables painting on screen and print devices using the same API, and is primarily based on the QPainter, QPaintDevice, and QPaintEngine classes.

QPainter is used to perform drawing operations, QPaintDevice is an abstraction of a two-dimensional space that can be painted on using a QPainter, and QPaintEngine provides the interface that the painter uses to draw onto different types of devices. The QPaintEngine class is used internally by QPainter and QPaintDevice, and is hidden from application programmers unless they create their own device type.

The main benefit of this approach is that all painting follows the same painting pipeline making it easy to add support for new features and providing default implementations for unsupported ones.

Topics

Classes for Painting

These classes provide support for painting onto a paint device.

QBitmap

Monochrome (1-bit depth) pixmaps

QColor

Colors based on RGB, HSV or CMYK values

QColorTransform

Transformation between color spaces

QColormap

Maps device independent QColors to device dependent pixel values

QGenericMatrix

Template class that represents a NxM transformation matrix with N columns and M rows

QIconEngine

Abstract base class for QIcon renderers

QImageReader

Format independent interface for reading images from files or other devices

QImageWriter

Format independent interface for writing images to files or other devices

QLine

Two-dimensional vector using integer precision

QLineF

Two-dimensional vector using floating point precision

QMargins

Defines the four margins of a rectangle

QMarginsF

Defines the four margins of a rectangle

QPageRanges

Represents a collection of page ranges

QPagedPaintDevice

Represents a paint device that supports multiple pages

QPaintDevice

The base class of objects that can be painted on with QPainter

QPen

Defines how a QPainter should draw lines and outlines of shapes

QPixmap

Off-screen image representation that can be used as a paint device

QPoint

Defines a point in the plane using integer precision

QPointF

Defines a point in the plane using floating point precision

QRect

Defines a rectangle in the plane using integer precision

QRectF

Defines a finite rectangle in the plane using floating point precision

QRgba64

Struct contains a 64-bit RGB color

QRgbaFloat

Struct contains a four part RGBA floating-point color

QSize

Defines the size of a two-dimensional object using integer point precision

QSizeF

Defines the size of a two-dimensional object using floating point precision

QStylePainter

Convenience class for drawing QStyle elements inside a widget

QVector2D

Represents a vector or vertex in 2D space