PySide6.QtGui.QPaintEngine¶
- 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()def
testDirty()
虚拟方法¶
def
begin()def
createPixmap()def
drawEllipse()def
drawImage()def
drawLines()def
drawPath()def
drawPixmap()def
drawPoints()def
drawPolygon()def
drawRects()def
drawTextItem()def
end()def
type()def
updateState()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
Qt为我们支持的不同绘图后端提供了几种预制的
QPaintEngine实现。提供的主要绘图引擎是光栅绘图引擎,它包含一个软件光栅化器,支持所有支持平台上的完整功能集。这是在基于QWidget的类上绘图的默认设置,例如在Windows、X11和macOS上,它是QImage上绘图的后端,并且用作不支持某些功能的绘图引擎的备用方案。此外,我们还为OpenGL(通过QOpenGLWidget访问)和打印(允许使用QPainter在QPrinter对象上绘图)提供了QPaintEngine实现。如果一个人想要使用
QPainter来绘制到不同的后端,必须子类化QPaintEngine并重新实现其所有虚函数。然后通过子类化QPaintDevice并重新实现虚函数paintEngine()来提供QPaintEngine的实现。QPaintEngine是由创建它的QPaintDevice创建并拥有的。另请参阅
- class PaintEngineFeature¶
(继承自
enum.Flag) 此枚举用于描述绘图引擎具有的功能或能力。如果引擎不支持某个功能,QPainter将尽力通过其他方式模拟该功能,并将模拟结果的带有 alpha 混合的QImage传递给引擎。某些功能无法模拟:AlphaBlend 和 PorterDuff。常量
描述
QPaintEngine.AlphaBlend
引擎可以对图元进行alpha混合。
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使用,通过updateState()触发QPaintEngine中各种状态的延迟更新。绘画引擎必须更新每个脏状态。
- 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()])¶
- Parameters:
特性 –
PaintEngineFeature的组合
创建一个具有由
caps指定的功能集的绘图引擎。- abstract begin(pdev)¶
- Parameters:
pdev –
QPaintDevice- Return type:
布尔
重新实现此函数以在开始在绘制设备
pdev上绘制时初始化您的绘制引擎。如果初始化成功,则返回 true;否则返回 false。另请参阅
- createPixmapFromImage(image[, flags=Qt.AutoColor])¶
- Parameters:
image –
QImageflags –
ImageConversionFlag的组合
- Return type:
这是一个重载函数。
此函数的默认实现调用了此函数的浮点版本
- drawEllipse(r)
- Parameters:
r –
QRectF
重新实现此函数以绘制可以包含在矩形
rect内的最大椭圆。默认实现调用
drawPolygon()。- drawImage(r, pm, sr[, flags=Qt.AutoColor])¶
- Parameters:
r –
QRectFpm –
QImagesr –
QRectFflags –
ImageConversionFlag的组合
重新实现此函数,以使用给定的转换标志
flags,将sr矩形指定的image部分绘制到给定的rectangle中,并将其转换为位图。这是一个重载函数。
默认实现将
lines中的前lineCount行转换为QLineF并调用此函数的浮点版本。- drawLines(lines, lineCount)
- Parameters:
lines –
QLineFlineCount – int
默认实现将
lines中的行列表拆分为lineCount个单独的调用,根据绘图引擎的功能集,分别调用drawPath()或drawPolygon()。- drawPath(path)¶
- Parameters:
路径 –
QPainterPath
默认实现忽略了
path并且不做任何操作。重新实现此函数以在给定的
r中绘制由sr矩形指定的pm部分。绘制缓冲区
points中的前pointCount个点默认实现将
points中的前pointCount个QPoints转换为QPointFs,并调用drawPoints的浮点版本。- drawPoints(points, pointCount)
- Parameters:
points –
QPointFpointCount – int
绘制缓冲区
points中的前pointCount个点- drawPolygon(points, pointCount, mode)¶
- Parameters:
points –
QPointpointCount – int
mode –
PolygonDrawMode
这是一个重载函数。
重新实现这个虚拟函数,以使用模式
mode绘制由points中的前pointCount个点定义的多边形。注意
至少有一个
drawPolygon()函数必须被重新实现。- drawPolygon(points, pointCount, mode)
- Parameters:
points –
QPointFpointCount – int
mode –
PolygonDrawMode
重新实现这个虚拟函数,以使用模式
mode绘制由points中的前pointCount个点定义的多边形。注意
至少必须重新实现其中一个drawPolygon()函数。
这是一个重载函数。
默认实现将缓冲区
rects中的前rectCount个矩形转换为QRectF,并调用此函数的浮点版本。- drawRects(rects, rectCount)
- Parameters:
rects –
QRectFrectCount – int
绘制缓冲区
rects中的前rectCount个矩形。此函数的默认实现根据绘图引擎的功能集调用drawPath()或drawPolygon()。此函数在位置
p绘制文本项textItem。此函数的默认实现将文本转换为QPainterPath并绘制生成的路径。重新实现此函数以在给定的
rect中绘制pixmap,从给定的p开始。pixmap将被重复绘制,直到rect被填满。- abstract end()¶
- Return type:
布尔
重新实现此函数以完成在当前绘图设备上的绘制。如果绘制成功完成,则返回true;否则返回false。
另请参阅
- hasFeature(feature)¶
- Parameters:
特性 –
PaintEngineFeature的组合- Return type:
布尔
如果绘图引擎支持指定的
feature,则返回true;否则返回false。- isActive()¶
- Return type:
布尔
如果绘图引擎正在积极绘制,则返回
true;否则返回false。另请参阅
- isExtended()¶
- Return type:
布尔
- paintDevice()¶
- Return type:
如果正在绘制,则返回此引擎正在绘制的设备;否则返回
None。返回绘图引擎的绘图器。
- setActive(newState)¶
- Parameters:
newState – 布尔值
将绘图引擎的活动状态设置为
state。另请参阅
- syncState()¶
重新实现此函数以返回绘图引擎
Type。- abstract updateState(state)¶
- Parameters:
状态 –
QPaintEngineState
重新实现此函数以更新绘图引擎的状态。
当实现时,此函数负责检查绘图引擎的当前
state并更新已更改的属性。使用state()函数找出哪些属性必须更新,然后使用相应的get function检索给定属性的当前值。另请参阅