- class QPaintEngine#
QPaintEngine类提供了一个抽象定义,说明QPainter如何在特定平台上将绘制到指定的设备。 更多…概要#
方法#
def
__init__()def
clearDirty()def
hasFeature()def
isActive()def
isExtended()def
paintDevice()def
painter()def
setActive()def
setDirty()def
setSystemClip()def
setSystemRect()def
syncState()def
systemClip()def
systemRect()定义
testDirty()
虚方法#
定义
begin()定义
drawImage()定义
drawLines()定义
drawPath()定义
drawPixmap()定义
drawPoints()定义
drawRects()定义
end()定义
type()
注意:
本文档可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有误,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单的方式让我们知道。
详细描述#
Qt 为我们支持的不同画家后端提供了一些预定义的
QPaintEngine实现。提供的主要绘制引擎是光栅绘制引擎,它包含一个软件光栅化器,支持所有支持平台的全特有人功能。这在 Windows、X11 和 macOS 等平台上基于 QWidget 的类绘制中是默认设置,它是QImage绘制的后端,并且作为不支持某些特定功能的绘制引擎的回退选项。此外,我们还提供了 OpenGL(通过 QOpenGLWidget 访问)和打印(允许使用QPainter在 QPrinter 对象上绘图)的QPaintEngine实现。如果你想使用
QPainter绘制到不同的后端,必须子类化QPaintEngine并重新实现所有虚拟函数。然后通过子类化QPaintDevice并重新实现虚拟函数paintEngine()使QPaintEngine实现可用。QPaintEngine是由创建它的QPaintDevice创建并拥有的。另请参阅
- class PaintEngineFeature#
(inherits
enum.Flag) 这个枚举用来描述绘制引擎具有的功能或能力。如果引擎不支持某个功能,QPainter将尽力通过其他方式模拟该功能,并通过带有模拟结果的透明度混合过的QImage传递给引擎。有些功能无法模拟:混合和波特-杜夫。常量
描述
QPaintEngine.AlphaBlend
该引擎可以混合透明度。
QPaintEngine.Antialiasing
引擎可以使用抗锯齿功能提升渲染原语的外观。
QPaintEngine.BlendModes
引擎支持混合模式。
QPaintEngine.BrushStroke
引擎支持绘制包含刷子填充的描边,而不仅仅是纯色(例如宽度为2的虚线渐变线)。
QPaintEngine.ConicalGradientFill
引擎支持圆锥渐变填充。
QPaintEngine.ConstantOpacity
引擎支持由
setOpacity()提供的功能。QPaintEngine.LinearGradientFill
引擎支持线性渐变填充。
QPaintEngine.MaskedBrush
引擎可以渲染具有alpha通道或蒙版的纹理的刷子。
QPaintEngine.ObjectBoundingModeGradients
引擎原生支持坐标模式为
ObjectBoundingMode的渐变。否则,如果支持QPaintEngine::PatternTransform,则对象边界的渐变将转换为坐标模式为LogicalMode的渐变,并对坐标映射进行刷子变换。QPaintEngine.PainterPaths
引擎支持路径。
QPaintEngine.PaintOutsidePaintEvent
引擎可以在绘图事件之外进行绘制。
QPaintEngine.PatternBrush
引擎可以渲染在Qt::BrushStyle中指定的刷子图案。
QPaintEngine.PatternTransform
引擎支持转换刷子图案。
QPaintEngine.PerspectiveTransform
引擎支持对原语执行透视变换。
QPaintEngine.PixmapTransform
引擎可以对位图进行变换,包括旋转和剪切。
QPaintEngine.PorterDuff
引擎支持Porter-Duff运算。
QPaintEngine.PrimitiveTransform
引擎支持转换绘图原语。
QPaintEngine.RadialGradientFill
引擎支持径向渐变填充。
QPaintEngine.RasterOpModes
引擎支持位图运算。
QPaintEngine.AllFeatures
上述所有功能。此枚举值通常用作位掩码。
- class DirtyFlag#
常量
描述
QPaintEngine.DirtyPen
(继承自
enum.Flag) 带脏;需要更新。QPaintEngine.DirtyBrush
刷子变脏;需要更新。
QPaintEngine.DirtyBrushOrigin
刷子原点变脏;需要更新。
QPaintEngine.DirtyFont
字体变脏;需要更新。
QPaintEngine.DirtyBackground
背景变脏;需要更新。
QPaintEngine.DirtyBackgroundMode
背景模式变脏;需要更新。
QPaintEngine.DirtyTransform
变换变脏;需要更新。
QPaintEngine.DirtyClipRegion
裁剪区域变脏;需要更新。
QPaintEngine.DirtyClipPath
裁剪路径变脏;需要更新。
QPaintEngine.DirtyHints
渲染提示变脏;需要更新。
QPaintEngine.DirtyCompositionMode
合成模式变脏;需要更新。
QPaintEngine.DirtyClipEnabled
裁剪是否启用变脏;需要更新。
QPaintEngine.DirtyOpacity
常量不透明度已更改,需要作为
updateState()中状态变化的一部分进行更新。QPaintEngine.AllDirty
内部使用的便利枚举。
这些类型由
QPainter用于触发使用QPaintEngine中各种状态的懒更新,使用updateState()。绘图引擎必须更新每个脏状态。
- class PolygonDrawMode#
常量
描述
QPaintEngine.OddEvenMode
多边形应使用奇偶填充规则绘制。
QPaintEngine.WindingMode
多边形应使用Winding填充规则绘制。
QPaintEngine.ConvexMode
多边形是凸多边形,并且可以使用可用的专用算法绘制。
QPaintEngine.PolylineMode
仅绘制多边形的轮廓。
- class Type#
常量
描述
QPaintEngine.X11
QPaintEngine.Windows
QPaintEngine.MacPrinter
QPaintEngine(CoreGraphics)
macOS的Quartz2D (CoreGraphics)
QPaintEngine.QuickDraw
macOS的QuickDraw
QPaintEngine.QWindowSystem
嵌入式Linux的Qt
QPaintEngine.OpenGL
QPaintEngine.Picture
QPicture格式QPaintEngine.SVG
可缩放矢量图形XML格式
QPaintEngine.Raster
QPaintEngine.Direct3D
仅限Windows,基于Direct3D的引擎
QPaintEngine.Pdf
可移植文档格式
QPaintEngine.OpenVG
QPaintEngine.User
第一个用户类型ID
QPaintEngine.MaxUser
最后一个用户类型ID
QPaintEngine.OpenGL2
QPaintEngine.PaintBuffer
QPaintEngine.Blitter
QPaintEngine.Direct2D
仅限Windows,基于Direct2D的引擎
- PySide6.QtGui.QPaintEngine.state#
- PySide6.QtGui.QPaintEngine.gccaps#
- PySide6.QtGui.QPaintEngine.active#
- PySide6.QtGui.QPaintEngine.selfDestruct#
- PySide6.QtGui.QPaintEngine.extended#
- __init__([features=QPaintEngine.PaintEngineFeatures()])#
- 参数::
features –
PaintEngineFeature组合
创建具有由
caps指定的功能集的绘图引擎。- 简介 begin(pdev)#
- 参数::
pdev –
QPaintDevice- 返回类型:
bool
重新实现此函数以在要开始在画布设备
pdev上绘制时初始化您的绘图引擎。如果初始化成功,则返回 true;否则返回 false。另请参阅
- createPixmapFromImage(image[, flags=Qt.AutoColor])#
- 参数::
image –
QImageflags –
ImageConversionFlag的组合
- 返回类型:
此函数的默认实现调用该函数的浮点版本。
- drawEllipse(r)
- 参数::
r –
QRectF
重新实现此函数以在矩形
rect内可以包含的最大椭圆进行绘制。默认实现调用
drawPolygon().- drawImage(r, pm, sr[, flags=Qt.AutoColor])#
- 参数::
r –
QRectF**pm** –
QImage**sr** –
QRectFflags –
ImageConversionFlag的组合
重新实现此函数以将指定由 **sr** 矩形指定的的一部分图像绘制到给定的 **rectangle** 中,使用给定的转换标志 **flags** 将其转换为位图。
这是一个重载函数。
默认实现将 **lines** 中的前 **lineCount** 行转换为 QLineF 并调用此函数的浮点版本。
- drawLines(lines, lineCount)
- 参数::
**lines** –
QLineF**lineCount** – int
默认实现将 **lines** 中的线条列表拆分为 **lineCount** 次单独调用的 **drawPath()** 或 **drawPolygon()**,具体取决于绘图引擎的功能集。
- drawPath(path)#
- 参数::
**path** –
QPainterPath
默认实现忽略 **path** 并不执行任何操作。
重新实现此函数,以将指定由 **sr** 矩形指定的 **pm** 的一部分绘制到给定的 **r** 中。
绘制缓冲区
points中的前pointCount个点。默认实现将
points中的前pointCount个 QPoint 转换为 QPointF,然后调用drawPoints的浮点版本。- drawPoints(points, pointCount)
- 参数::
points –
QPointFpointCount – int
绘制缓冲区
points中的前pointCount个点。- drawPolygon(points, pointCount, mode)#
- 参数::
points –
QPointpointCount – int
mode –
PolygonDrawMode
这是一个重载函数。
重新实现此虚拟函数,以使用模式
mode绘制由points中前pointCount个点定义的多边形。注意:
必须重新实现至少一个
drawPolygon()函数。- drawPolygon(points, pointCount, mode)
- 参数::
points –
QPointFpointCount – int
mode –
PolygonDrawMode
重新实现此虚拟函数,以使用模式
mode绘制由points中前pointCount个点定义的多边形。注意:
必须重新实现至少一个 drawPolygon() 函数。
绘制缓冲区
rects中的前rectCount个矩形。此函数的默认实现根据绘图引擎的功能集,调用drawPath()或drawPolygon()。- drawRects(rects, rectCount)
- 参数::
rects –
QRectrectCount – int
这是一个重载函数。
默认实现将缓冲区中前
rectCount个矩形转换为QRectF,并调用该函数的浮点版本。此函数在指定位置
p绘制文本项textItem。此函数的默认实现将文本转换为QPainterPath并绘制结果路径。重新实现此函数以在给定的
rect中绘制pixmap,从给定的p开始。Pixmap将被绘制,直到rect被填满。- 抽象end()#
- 返回类型:
bool
重新实现此函数以完成当前绘画设备的绘画。如果绘画成功完成则返回true;否则返回false。
另请参阅
- hasFeature(feature)#
- 参数::
feature –
PaintEngineFeature的组合- 返回类型:
bool
如果绘图引擎支持指定的
feature则返回true;否则返回false。- isActive()#
- 返回类型:
bool
如果绘图引擎正在绘图,返回
true;否则返回false。另请参阅
- isExtended()#
- 返回类型:
bool
- paintDevice()#
- 返回类型:
如果绘图活动,返回此引擎所绘画的设备;否则返回
None。返回绘图引擎的绘图器。
- setActive(newState)#
- 参数::
newState - bool
将绘图引擎的活动状态设置为
state。另请参阅
- syncState()#
重写此函数以返回绘图引擎的
Type。- 抽象updateState(state)#
- 参数::
state -
QPaintEngineState
重写此函数以更新绘图引擎的状态。
当实现该功能后,它负责检查绘画引擎的当前
状态并更新已更改的属性。使用state()函数以找出哪些属性需要更新,然后使用相应的get 函数来检索给定属性的当前值。另请参阅