class QQuickFramebufferObject#

QQuickFramebufferObject 类是一个方便的类,它允许使用帧缓冲对象(FBO)将 OpenGL 渲染与 Qt Quick 集成。了解更多信息...

Inheritance diagram of PySide6.QtQuick.QQuickFramebufferObject

概述#

属性#

方法#

虚拟方法#

信号#

注意

这份文档可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译存在问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建票据的方式来告诉我们。

详细描述#

警告

此类仅在 Qt Quick 通过 OpenGL 渲染时才能正常工作。它与其他图形 API(如 Vulkan 或 Metal)不兼容。它应被视为一个仅存在于为了使 Qt 5 应用程序能够在绑定到 OpenGL 的情况下,不中断源兼容性的最终遗留下来的类。

在大多数平台上,渲染将在专用线程上发生。因此,QQuickFramebufferObject类强制实施项目实现和FBO渲染之间的严格分离。所有项目逻辑,例如QML所需的属性和相关UI帮助函数,应位于QQuickFramebufferObject类的子类中。所有与渲染相关的事项都必须位于Renderer类中。

为了避免由于两个线程之间的竞争条件导致的读写问题,非常重要的一点是渲染器和项目永远不会读取或写入共享变量。项目与渲染器之间的通信应主要通过synchronize()函数进行。此函数将在渲染线程上调用,同时GUI线程将被阻塞。

使用队列连接或事件进行项目与渲染器之间的通信也是可能的。

渲染器和FBO内部都进行内存管理。

要将内容渲染到FBO中,用户应子类化Renderer类并重新实现其render()函数。Renderer子类由createRenderer()返回。

默认情况下,FBO的大小将适应项目的大小。如果首选固定大小,则将textureFollowsItemSize设置为false,并在createFramebufferObject()中返回用户选择的纹理。

从Qt 5.4开始,QQuickFramebufferObject类是一个纹理提供者,可以直接用于ShaderEffects和其他使用纹理提供者的类。

另请参阅

场景图和渲染

注意

可以直接使用属性,当使用from __feature__ import true_property时,或者通过访问函数使用。

property mirrorVerticallyᅟ: bool#

此属性控制FBO内容的尺寸在绘图时应是否垂直翻转。这允许轻松集成不遵循标准期望的第三方渲染代码。

默认值是false

访问函数
属性 textureFollowsItemSizeᅟ: bool#

此属性控制FBO纹理的大小是否应跟随QQuickFramebufferObject项的尺寸。当此属性为false时,FBO将在第一次显示时创建。如果设置为true,则每次项的尺寸更改时,FBO将会被重新创建。

默认值是true

访问函数
__init__([parent=None])#
参数:

parentQQuickItem

使用父级parent构建一个新的QQuickFramebufferObject

抽象createRenderer()#
返回类型:

渲染器

重新实现此函数以创建用于在FBO中渲染的渲染器。

此函数将在渲染线程中被调用,而GUI线程被阻塞。

mirrorVertically()#
返回类型:

bool

另请参阅

setMirrorVertically()

属性mirrorVerticallyᅟ的获取器。

mirrorVerticallyChanged(arg__1)#
参数:

arg__1 – bool

属性mirrorVerticallyᅟ的变更通知信号。

setMirrorVertically(enable)#
参数:

enable – bool

另请参阅

mirrorVertically()

属性mirrorVerticallyᅟ的设置器。

setTextureFollowsItemSize(follows)#
参数:

follows – bool

属性“textureFollowsItemSize”的设置器。

textureFollowsItemSize()#
返回类型:

bool

属性“textureFollowsItemSize”的获取器。

textureFollowsItemSizeChanged(arg__1)#
参数:

arg__1 – bool

属性“textureFollowsItemSize”的属性变更通知信号。