PySide6.QtQuick.QSGNode¶
- class QSGNode¶
-
继承自:
QSGTransformNode,QSGTextNode,QSGRootNode,QSGRenderNode,QSGOpacityNode,QSGBasicGeometryNode,QSGGeometryNode,QSGSimpleTextureNode,QSGSimpleRectNode,QSGRectangleNode,QSGNinePatchNode,QSGImageNode,QSGClipNode概要¶
方法¶
def
__init__()def
childAtIndex()def
childCount()def
clearDirty()def
dirtyState()def
firstChild()def
flags()def
lastChild()def
markDirty()def
nextSibling()def
parent()def
setFlag()def
setFlags()def
type()
虚拟方法¶
def
preprocess()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QSGNode类可以用作子容器。子节点可以通过appendChildNode()、prependChildNode()、insertChildNodeBefore()和insertChildNodeAfter()添加。节点的顺序很重要,因为几何节点是根据它们在场景图中的顺序进行渲染的。场景图节点包含一种机制,用于描述场景的哪些部分发生了变化。这包括组合矩阵、累积不透明度、节点层次结构的变化等。这些信息可以用于场景图渲染器内部的优化。为了使渲染器正确渲染节点,用户在节点更改时使用正确的标志调用
markDirty()非常重要。节点类上的大多数函数将隐式调用markDirty()。例如,appendChildNode()将调用markDirty()并传入DirtyNodeAdded。如果节点每帧都发生变化,可以使用
preprocess()函数在每帧渲染时对节点应用更改。必须通过在节点上设置UsePreprocess标志来显式启用preprocess()的使用。虚拟的
isSubtreeBlocked()函数可以用来完全禁用一个子树。被禁用的子树中的节点将不会被预处理(),也不会被渲染。注意
所有带有QSG前缀的类应仅在场景图的渲染线程上使用。有关更多信息,请参见场景图和渲染。
- class NodeType¶
可用于确定节点的类型。
常量
描述
QSGNode.BasicNodeType
QSGNode的类型QSGNode.GeometryNodeType
QSGNode.TransformNodeType
QSGNode.ClipNodeType
QSGClipNode的类型QSGNode.OpacityNodeType
QSGNode.RenderNodeType
另请参阅
- class Flag¶
(继承自
enum.Flag) QSGNode::Flag 枚举描述了QSGNode上的标志常量
描述
QSGNode.OwnedByParent
该节点由其父节点拥有,当父节点被删除时,该节点也将被删除。
QSGNode.UsePreprocess
节点的虚拟
preprocess()函数将在渲染开始之前被调用。QSGNode.OwnsGeometry
仅对
QSGGeometryNode和QSGClipNode有效。该节点拥有QSGGeometry实例的所有权,并在节点销毁或分配几何体时删除它。QSGNode.OwnsMaterial
仅对
QSGGeometryNode有效。节点拥有材质的所有权,当节点被销毁或分配了材质时,节点将删除它。QSGNode.OwnsOpaqueMaterial
仅对
QSGGeometryNode有效。该节点拥有不透明材质的所有权,并在节点销毁或分配材质时删除它。QSGNode.InternalReserved
保留供内部使用。
- class DirtyStateBit¶
(继承自
enum.Flag) 用于markDirty()以指示场景图如何发生变化。常量
描述
QSGNode.DirtyMatrix
QSGTransformNode中的矩阵已更改。QSGNode.DirtyNodeAdded
添加了一个节点。
QSGNode.DirtyNodeRemoved
一个节点被移除。
QSGNode.DirtyGeometry
QSGGeometryNode的几何形状已更改。QSGNode.DirtyMaterial
QSGGeometryNode的材质已更改。QSGNode.DirtyOpacity
QSGOpacityNode的不透明度已更改。QSGNode.DirtySubtreeBlocked
子树已被阻止。
另请参阅
- __init__()¶
构建一个新节点
- __init__(type)
- Parameters:
类型 –
NodeType
将
node附加到此节点的子节点列表中。节点的排序很重要,因为几何节点将按照它们添加到场景图的顺序进行渲染。
返回索引为
i的子元素。子节点在内部以链表的形式存储,因此通过索引遍历子节点的效率较低。
- childCount()¶
- Return type:
整数
返回子节点的数量。
- clearDirty()¶
注意
此函数已弃用。
- dirtyState()¶
- Return type:
注意
此函数已弃用。
返回此节点的第一个子节点。
子节点存储在链表中。
返回此节点的标志集。
另请参阅
将
node插入到此节点的子节点列表中,位于使用after指定的节点之后。节点的排序很重要,因为几何节点将按照它们添加到场景图的顺序进行渲染。
将
node插入到此节点的子节点列表中,位于before指定的节点之前。节点的排序很重要,因为几何节点将按照它们添加到场景图的顺序进行渲染。
- isSubtreeBlocked()¶
- Return type:
布尔
返回此节点及其子树是否可用。
被阻止的子树将不会更新其脏状态,也不会被渲染。
例如,当累积不透明度为0时,
QSGOpacityNode将返回一个被阻止的子树。返回此节点的最后一个子节点。
子节点以链表的形式存储。
- markDirty(bits)¶
- Parameters:
bits –
DirtyStateBit的组合
通知所有连接的渲染器,该节点有脏的
bits。返回父节点子节点列表中此节点之后的节点。
子节点以链表的形式存储。
返回此节点的父节点。
将
node前置到此节点的子节点列表中。节点的排序很重要,因为几何节点将按照它们添加到场景图的顺序进行渲染。
- preprocess()¶
重写此函数以在节点渲染之前对其进行处理。
预处理需要通过设置标志
UsePreprocess来显式启用。该标志需要在节点添加到场景图之前设置,并且会导致在节点渲染的每一帧中调用preprocess()函数。警告
在节点正在预处理时删除节点要小心。在节点自身的预处理调用期间删除单个节点是可能的,尽管会有轻微的性能影响。删除包含使用预处理的节点的子树可能会导致分段错误。这是出于性能考虑。
返回父节点子节点列表中此节点之前的节点。
子节点以链表的形式存储。
- removeAllChildNodes()¶
从该节点的子节点列表中移除所有子节点。
从该节点的子节点列表中移除
node。如果
enabled为真,则在此节点上设置标志f;否则清除该标志。另请参阅
如果
enabled为真,则在此节点上设置标志f;否则清除标志。另请参阅
返回此节点的类型。节点类型必须是
NodeType中定义的预定义类型之一,并且可以安全地用于转换为相应的类。