- 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 –
QImage
flags –
ImageConversionFlag
的组合
- 返回类型:
此函数的默认实现调用该函数的浮点版本。
- drawEllipse(r)
- 参数::
r –
QRectF
重新实现此函数以在矩形
rect
内可以包含的最大椭圆进行绘制。默认实现调用
drawPolygon()
.- drawImage(r, pm, sr[, flags=Qt.AutoColor])#
- 参数::
r –
QRectF
**pm** –
QImage
**sr** –
QRectF
flags –
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 –
QPointF
pointCount – int
绘制缓冲区
points
中的前pointCount
个点。- drawPolygon(points, pointCount, mode)#
- 参数::
points –
QPoint
pointCount – int
mode –
PolygonDrawMode
这是一个重载函数。
重新实现此虚拟函数,以使用模式
mode
绘制由points
中前pointCount
个点定义的多边形。注意:
必须重新实现至少一个
drawPolygon()
函数。- drawPolygon(points, pointCount, mode)
- 参数::
points –
QPointF
pointCount – int
mode –
PolygonDrawMode
重新实现此虚拟函数,以使用模式
mode
绘制由points
中前pointCount
个点定义的多边形。注意:
必须重新实现至少一个 drawPolygon() 函数。
绘制缓冲区
rects
中的前rectCount
个矩形。此函数的默认实现根据绘图引擎的功能集,调用drawPath()
或drawPolygon()
。- drawRects(rects, rectCount)
- 参数::
rects –
QRect
rectCount – 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 函数
来检索给定属性的当前值。另请参阅