本页内容

绘制系统

Qt 的绘制系统为在各种表面(如屏幕上的小部件、图像和打印页面)上渲染图形提供了一个统一且灵活的框架。它主要围绕QPainter 、QPaintDevice 和QPaintEngine 类构建。

QPainter 用于执行绘制操作,QPaintDevice 是二维空间的抽象表示,可通过QPainter 对其进行绘制,而QPaintEngine 则提供了绘图器用于在不同类型设备上绘制的接口。QPaintEngine 类由QPainter 和QPaintDevice 在内部使用,除非应用程序开发人员创建了自己的设备类型,否则该类对他们是不可见的。

展示涂料体系之间关系的示意图

这种方法的主要优点在于,所有绘制操作都遵循相同的绘制管道,这使得添加对新功能的支持变得容易,并为不支持的功能提供了默认实现。

主题

绘图类

这些类为在绘图设备上进行绘制提供了支持。

QBitmap

单色(1 位色深)像素图

QBrush

定义由 QPainter 绘制的形状的填充模式

QColor

基于 RGB、HSV 或 CMYK 值的颜色

QColorSpace

色彩空间抽象

QColorTransform

颜色空间之间的转换

QConicalGradient

与 QBrush 结合使用,用于指定锥形渐变画笔

QFont

指定用于绘制文本的字体的查询

QFontMetrics

字体度量信息

QFontMetricsF

字体度量信息

QGenericMatrix

表示 N 列、M 行 N×M 变换矩阵的模板类

QGradient

与 QBrush 结合使用,用于指定渐变填充

QIcon

可在不同模式和状态下缩放的图标

QIconEngine

QIcon 渲染器的抽象基类

QImage

一种与硬件无关的图像表示形式,允许直接访问像素数据,并可作为绘图设备使用

QImageReader

用于从文件或其他设备读取图像的格式独立接口

QImageWriter

用于将图像写入文件或其他设备的格式独立接口

QLine

使用整数精度的二维向量

QLineF

使用浮点精度的二维向量

QLinearGradient

与 QBrush 结合使用,用于指定线性渐变画笔

QMargins

定义矩形的四个边距

QMarginsF

定义矩形的四个边距

QPageRanges

表示一组页面范围

QPagedPaintDevice

表示一个支持多页的绘图设备

QPaintDevice

可使用 QPainter 进行绘制的对象的基类

QPaintEngine

QPainter 在给定平台上如何向给定设备绘制的抽象定义

QPainter

对小部件和其他绘图设备执行低级绘制操作

QPainterPath

绘制操作的容器,支持构建和复用图形形状

QPainterPathStroker

用于为给定的绘制路径生成可填充的轮廓

QPainterStateGuard

用于平衡调用 QPainter::save() 和 QPainter::restore() 的 RAII 便捷类

QPdfOutputIntent

QPdfWriter

用于生成可作为绘制设备使用的 PDF 的类

QPen

定义了 QPainter 应如何绘制线条和图形的轮廓

QPixmap

可作为绘图设备的离屏图像表示

QPoint

使用整数精度定义平面上的点

QPointF

使用浮点精度定义平面上的点

QPolygon

使用整数精度定义的点列表

QPolygonF

使用浮点精度定义的点列表

QRadialGradient

与 QBrush 结合使用,用于指定径向渐变画笔

QRect

使用整数精度定义平面中的矩形

QRectF

使用浮点精度在平面上定义一个有限矩形

QRegion

为绘图工具指定裁剪区域

QRgba64

该结构体包含一个 64 位 RGB 颜色

QRgbaFloat

该结构体包含一个由四部分组成的 RGBA 浮点颜色

QSize

使用整数精度定义二维对象的大小

QSizeF

使用浮点精度定义二维对象的大小

QStylePainter

用于在小部件内绘制 QStyle 元素的便捷类

QSupportedWritingSystems

用于将字体注册到 Qt 内部字体数据库时

QSvgGenerator

用于创建 SVG 绘图的绘制设备

QSvgRenderer

用于将 SVG 文件的内容绘制到绘图设备上

QSvgWidget

用于显示可缩放矢量图形(SVG)文件内容的控件

QTransform

指定坐标系的二维变换

QVector2D

表示二维空间中的向量或顶点

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.