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 –
QImage
flags –
ImageConversionFlag
的组合
- Return type:
这是一个重载函数。
此函数的默认实现调用了此函数的浮点版本
- drawEllipse(r)
- Parameters:
r –
QRectF
重新实现此函数以绘制可以包含在矩形
rect
内的最大椭圆。默认实现调用
drawPolygon()
。- drawImage(r, pm, sr[, flags=Qt.AutoColor])¶
- Parameters:
r –
QRectF
pm –
QImage
sr –
QRectF
flags –
ImageConversionFlag
的组合
重新实现此函数,以使用给定的转换标志
flags
,将sr
矩形指定的image
部分绘制到给定的rectangle
中,并将其转换为位图。这是一个重载函数。
默认实现将
lines
中的前lineCount
行转换为QLineF并调用此函数的浮点版本。- drawLines(lines, lineCount)
- Parameters:
lines –
QLineF
lineCount – 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 –
QPointF
pointCount – int
绘制缓冲区
points
中的前pointCount
个点- drawPolygon(points, pointCount, mode)¶
- Parameters:
points –
QPoint
pointCount – int
mode –
PolygonDrawMode
这是一个重载函数。
重新实现这个虚拟函数,以使用模式
mode
绘制由points
中的前pointCount
个点定义的多边形。注意
至少有一个
drawPolygon()
函数必须被重新实现。- drawPolygon(points, pointCount, mode)
- Parameters:
points –
QPointF
pointCount – int
mode –
PolygonDrawMode
重新实现这个虚拟函数,以使用模式
mode
绘制由points
中的前pointCount
个点定义的多边形。注意
至少必须重新实现其中一个drawPolygon()函数。
这是一个重载函数。
默认实现将缓冲区
rects
中的前rectCount
个矩形转换为QRectF,并调用此函数的浮点版本。- drawRects(rects, rectCount)
- Parameters:
rects –
QRectF
rectCount – 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
检索给定属性的当前值。另请参阅