QPainter类用于在控件和其它绘图设备上进行绘制。
Header: | #include <QPainter> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
Inherited By: |
详细说明>>>
【公共类型】
class | 这个类用于在 QPainter::drawPixmapFragments() 函数中绘制一个像素图。 |
enum | CompositionMode { CompositionMode_SourceOver, CompositionMode_DestinationOver, CompositionMode_Clear, CompositionMode_Source, CompositionMode_Destination, …, RasterOp_SourceOrNotDestination } 合成模式的枚举 |
enum | PixmapFragmentHint { OpaqueHint } 透明模式枚举(本质上只是一个开关) |
flags | 返回当前透明模式 |
enum | RenderHint { Antialiasing, TextAntialiasing, SmoothPixmapTransform, VerticalSubpixelPositioning, LosslessImageRendering, NonCosmeticBrushPatterns } 渲染设置 |
flags | 返回渲染设置状态 |
【公有函数 】
QPainter() | |
构造空painter。 | |
QPainter(QPaintDevice *device) | |
在绘制设备device构造一个painter并可以立即绘制。 此构造函数对只使用一次绘制很方便。例如在QWidget::paintEvent()中,构造函数为您调用begin(),而QPainter析构函数自动调用end()。 使用此构造函数的相同示例: 由于painter初始化失败时,构造函数无法提供反馈,因此您应该使用 begin() 和 end() 在外部设备(例如打印机)上绘画。 |
|
/ | ~QPainter() |
const QBrush & | background() const |
返回当前背景笔刷。 | |
Qt::BGMode | backgroundMode() const |
返回当前背景模式(只有两种:透明Qt::TransparentMode或不透明Qt::OpaqueMode) | |
bool | begin(QPaintDevice *device) |
在绘制设备上开始绘制,成功返回true;失败返回false。 注意:所有的绘图设置(setPen(),setBrush()等)在此函数调用时,都会被重置为默认值。 可能发生的错误是严重的问题,例如:
|
|
void | beginNativePainting() |
刷新绘制管道并为用户直接向底层图形上下文发出命令做准备。必须后跟对endNativePainting()的调用。 请注意,只有基础绘制引擎更改的状态才会重置为其各自的默认状态。我们重置的状态可能会因版本而异,以下状态当前在OpenGL 2引擎中被重置:
例如,如果用户在beginNativePaint()/endNativePainting()块内更改了OpenGL多边形模式,则endNativePainting()不会将其重置为默认状态。以下示例显示了painter命令和原始OpenGL命令的混合: |
|
QRectF | boundingRect(const QRectF &rectangle, int flags, const QString &text) |
使用当前设置的font()返回带有指定标志 flags 的 text 在给定矩形rectangle内绘制时的边框;也就是说,当给定相同的参数时,该函数告诉您drawText()函数将在哪里绘制。 如果 text 不适合使用指定标志 flags 的给定矩形rectangle,则该函数返回所需的矩形。 flags参数是以下标志的按位“或”运算:
如果设置了几个水平对齐标志或几个垂直对齐标志,则对齐结果是未定义的。 |
|
QRect | boundingRect(const QRect &rectangle, int flags, const QString &text) |
重载。使用当前设置的font()返回带有指定标志flags的text在给定矩形内rectangle绘制时的边框。 | |
QRect | boundingRect(int x, int y, int w, int h, int flags, const QString &text) |
重载。返回给定文本的边框,它将在从点(x,y)开始、宽度为w、高度为h的矩形内绘制。 | |
QRectF | boundingRect(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption()) |
这个重载函数没有将标志指定为Qt::AlignmentFlag 和 Qt::TextFlag的按位OR,而是采用一个option选项参数。QTextOption 类提供了对常规富文本属性的描述。 | |
const QBrush & | brush() const |
返回painter的当前画笔。 | |
QPoint | brushOrigin() const |
返回当前设置的画笔原点。 | |
QRectF | clipBoundingRect() const |
如果有剪辑,则返回当前剪辑的边框;否则返回一个空矩形。 注意剪辑区域是以逻辑坐标给出的。 边框不能保证是紧密的。 |
|
QPainterPath | clipPath() const |
返回逻辑坐标中的当前剪辑路径。 警告:QPainter不会显式存储组合剪辑,因为这是由底层QPaintEngine处理的,因此会根据需要重新创建路径并将其转换到当前逻辑坐标系。这可能是一个昂贵的操作。 |
|
QRegion | clipRegion() const |
返回当前设置的剪辑区域。注意剪辑区域是以逻辑坐标给出的。【警告同上】 | |
QTransform | combinedTransform() const |
返回组合当前窗口/视口和世界变换的变换矩阵。 | |
QPainter:: CompositionMode |
compositionMode() const |
返回当前合成模式。 | |
QPaintDevice * | device() const |
返回此 painter当前正在其上绘画的设备,如果painter未处于活动状态,则返回nullptr。 | |
const QTransform & |
deviceTransform() const |
返回从逻辑坐标转换到平台相关绘画设备的设备坐标的矩阵。 只有在平台相关句柄 (Qt::HANDLE)上使用平台绘制命令时才需要此函数,并且平台本身不进行转换。 可以查询QPaintEngine::PaintEngineFeature 枚举来确定平台是否执行转换。 |
|
void | drawArc(const QRectF &rectangle, int startAngle, int spanAngle) |
绘制由给定矩形rectangle、startAngle和spanAngle定义的弧线。 startAngle(起始角度)和spanAngle(跨度角度)必须指定为1/16度,即一个完整的圆等于5760(16 * 360)。角度的正值表示逆时针方向,负值表示顺时针方向。零度在3点钟位置。 |
|
void | drawArc(const QRect &rectangle, int startAngle, int spanAngle) |
重载,功能同上。 | |
void | drawArc(int x, int y, int width, int height, int startAngle, int spanAngle) |
从(x,y)开始,以指定的宽度w和高度h以及给定的起始角度startAngle和跨度角度spanAngle绘制由矩形定义的圆弧。 | |
void | drawChord(const QRectF &rectangle, int startAngle, int spanAngle) |
绘制由给定矩形rectangle、起始角度startAngle和跨度角度spanAngle定义的弦,弦由当前画笔填充brush()。 |
|
void | drawChord(int x, int y, int width, int height, int startA |