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.
These classes provide support for painting onto a paint device.
Monochrome (1-bit depth) pixmaps | |
Defines the fill pattern of shapes drawn by QPainter | |
Colors based on RGB, HSV or CMYK values | |
Maps device independent QColors to device dependent pixel values | |
Used in combination with QBrush to specify a conical gradient brush | |
Direct access to the underlying hardware in Qt for Embedded Linux | |
Specifies a font used for drawing text | |
Font metrics information | |
Font metrics information | |
Template class that represents a NxM transformation matrix with N columns and M rows | |
Used in combination with QBrush to specify gradient fills | |
Scalable icons in different modes and states | |
Abstract base class for QIcon renderers | |
Abstract base class for QIcon renderers | |
Hardware-independent image representation that allows direct access to the pixel data, and can be used as a paint device | |
Format independent interface for reading images from files or other devices | |
Format independent interface for writing images to files or other devices | |
Two-dimensional vector using integer precision | |
Two-dimensional vector using floating point precision | |
Used in combination with QBrush to specify a linear gradient brush | |
Defines the four margins of a rectangle | |
Convenience class for playing movies with QImageReader | |
The base class of objects that can be painted | |
Abstract definition of how QPainter draws to a given device on a given platform | |
Performs low-level painting on widgets and other paint devices | |
Container for painting operations, enabling graphical shapes to be constructed and reused | |
Used to generate fillable outlines for a given painter path | |
Contains color groups for each widget state | |
Defines how a QPainter should draw lines and outlines of shapes | |
Paint device that records and replays QPainter commands | |
Off-screen image representation that can be used as a paint device | |
Application-wide cache for pixmaps | |
Makes it possible to customize how fonts are discovered and how they are rendered | |
Specifies the display format of an OpenGL rendering context and if possible attributes of the corresponding QPlatformWindow | |
Defines a point in the plane using integer precision | |
Defines a point in the plane using floating point precision | |
Vector of points using integer precision | |
Vector of points using floating point precision | |
Used in combination with QBrush to specify a radial gradient brush | |
Defines a rectangle in the plane using integer precision | |
Defines a rectangle in the plane using floating point precision | |
Specifies a clip region for a painter | |
Defines the size of a two-dimensional object using integer point precision | |
Defines the size of a two-dimensional object using floating point precision | |
Convenience class for drawing QStyle elements inside a widget | |
Used when registering fonts with the internal Qt fontdatabase | |
Paint device that is used to create SVG drawings | |
Used to draw the contents of SVG files onto paint devices | |
Widget that is used to display the contents of Scalable Vector Graphics (SVG) files | |
Specifies 2D transformations of a coordinate system | |
Represents a vector or vertex in 2D space |
Alternatively, Qt provides the QtOpenGL module, offering classes that makes it easy to use OpenGL in Qt applications. Among others, the module provides an OpenGL widget class that can be used just like any other Qt widget, except that it opens an OpenGL display buffer where the OpenGL API can be used to render the contents.