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
中定义的预定义类型之一,并且可以安全地用于转换为相应的类。