Q3DScene 类

Q3DScene 类提供对正在可视化的 3D 场景的描述。更多...

头文件 #include <Q3DScene>
CMakefind_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmakeQT += graphs
由以下实例化 Scene3D
继承自 QObject
状态技术预览

属性

公共函数

Q3DScene(QObject *parent = nullptr)
virtual~Q3DScene() override
floatdevicePixelRatio() const
QPointgraphPositionQuery() const
QPointinvalidSelectionPoint() const
boolisPointInPrimarySubView(const QPoint &point)
boolisPointInSecondarySubView(const QPoint &point)
boolisSecondarySubviewOnTop() const
boolisSlicingActive() const
QRectprimarySubViewport() const
QRectsecondarySubViewport() const
const QPointselectionQueryPosition() const
voidsetDevicePixelRatio(float pixelRatio)
voidsetGraphPositionQuery(const QPoint &point)
voidsetPrimarySubViewport(const QRect &primarySubViewport)
voidsetSecondarySubViewport(const QRect &secondarySubViewport)
voidsetSecondarySubviewOnTop(bool isSecondaryOnTop)
voidsetSelectionQueryPosition(const QPoint &point)
voidsetSlicingActive(bool isSlicing)
QRectviewport() const

信号

voiddevicePixelRatioChanged(浮点型 pixelRatio)
voidgraphPositionQueryChanged(const QPoint &position)
voidprimarySubViewportChanged(const QRect &subViewport)
voidsecondarySubViewportChanged(const QRect &subViewport)
voidsecondarySubviewOnTopChanged(bool isSecondaryOnTop)
voidselectionQueryPositionChanged(const QPoint &position)
voidslicingActiveChanged(bool isSlicingActive)
voidviewportChanged(const QRect &viewport)

详细描述

3D场景包含一个活动相机和一个活动光源。可视数据假定在固定位置。

3D场景还跟踪图形渲染的视口,视图中主要3D图形视图的初级子视口,以及数据2D切片视图的次级子视口。默认情况下,子视口由Q3DScene调整大小。要覆盖调整大小行为,需要监听viewportChanged()和slicingActiveChanged()信号,并相应地重新计算子视口。

此外,场景还有标志以跟踪次级2D切片视图是否当前处于活动状态。

注意:并非所有图表都支持次级2D切片视图。

属性文档

devicePixelRatio : float

此属性持有用于将输入坐标映射到像素坐标的设备像素比。

访问函数

floatdevicePixelRatio() const
voidsetDevicePixelRatio(float pixelRatio)

通知器信号

voiddevicePixelRatioChanged(float pixelRatio)

graphPositionQuery : QPoint

此属性持有应由场景作为图形位置查询处理的用户输入坐标。

如果此属性设置为除invalidSelectionPoint()以外的值,则图表尝试将指定的坐标与主视口内的图形位置匹配。在渲染阶段之后,此属性返回其默认状态invalidSelectionPoint()。在下一个渲染阶段之后,可以从QAbstract3DGraph::queriedGraphPosition属性中读取查询的图形位置。

没有单个正确的3D坐标与特定屏幕位置匹配,因此为了保持一致,查询总是针对围绕图表的无形盒子的内部侧面进行。

注意:柱状图仅在图表地面级别允许图形位置查询。

访问函数

QPointgraphPositionQuery() const
voidsetGraphPositionQuery(const QPoint &point)

通知器信号

voidgraphPositionQueryChanged(const QPoint &position)

另请参阅:QAbstract3DGraph::queriedGraphPosition.

primarySubViewport : QRect

此属性持有在视图中将其主要图形视图针对的子视口当前矩形内部。

如果 isSlicingActive() 返回 false,则主子视窗等于 viewport()。如果 isSlicingActive() 返回 true 且未显式设置主子视窗,则主子视窗将是 viewport() 的五分之一。

注意:将主子视窗设置为大于或超出视口的尺寸将相应调整视口。

访问函数

QRectprimarySubViewport() const
voidsetPrimarySubViewport(const QRect &primarySubViewport)

通知器信号

voidprimarySubViewportChanged(const QRect &subViewport)

secondarySubViewport : QRect

此属性保留视口内部的次级视窗矩形。

次级视窗用于在一些图表中绘制2D切片视图。如果未显式设置,它将与 QRect 相等。如果 isSlicingActive() 返回 true,它将与 viewport 相等。

注意:如果次级子视窗大于或超出视口,将相应调整视口。

访问函数

QRectsecondarySubViewport() const
voidsetSecondarySubViewport(const QRect &secondarySubViewport)

通知器信号

voidsecondarySubViewportChanged(const QRect &subViewport)

secondarySubviewOnTop : bool

此属性保留二维切片视图或三维视图是否绘制在最上面。

访问函数

boolisSecondarySubviewOnTop() const
voidsetSecondarySubviewOnTop(bool isSecondaryOnTop)

通知器信号

voidsecondarySubviewOnTopChanged(bool isSecondaryOnTop)

selectionQueryPosition : QPoint

此属性保留用户输入的坐标,应由场景作为选择进行处理。

如果此属性的值设置为与 invalidSelectionPoint() 不同的值,图表将尝试在主视图中指定坐标中选择数据项目、轴标签或自定义项。在渲染过程之后,该属性返回到其默认状态 invalidSelectionPoint

访问函数

const QPointselectionQueryPosition() const
voidsetSelectionQueryPosition(const QPoint &point)

通知器信号

voidselectionQueryPositionChanged(const QPoint &position)

另请参阅:QAbstract3DGraph::selectedElement.

slicingActive : bool

此属性保留当前是否激活二维切片视图。

如果为 true,则 QAbstract3DGraph::selectionMode 必须设置为有效选择之一 QAbstract3DGraph::SelectionRowQAbstract3DGraph::SelectionColumn

注意:并非所有图表都支持二维切片视图。

访问函数

boolisSlicingActive() const
voidsetSlicingActive(bool isSlicing)

通知器信号

voidslicingActiveChanged(bool isSlicingActive)

[只读] viewport : const QRect

此属性保留一个只读属性,包含所有3D渲染目标中的当前视窗矩形。

访问函数

QRectviewport() const

通知器信号

voidviewportChanged(const QRect &viewport)

成员函数文档

[显式] Q3DScene::Q3DScene(QObject *parent = nullptr)

在场景中构建一个基本场景,包含一个光源和一个摄像头。可以提供可选的 parent 参数,并传递给QObject 构造函数。

[重写虚拟 noexcept] Q3DScene::~Q3DScene()

销毁3D场景及其内包含的所有对象。

QPoint Q3DScene::invalidSelectionPoint() const

返回表示无效选择位置的 QPoint

注意: invalidSelectionPoint属性的获取函数。

bool Q3DScene::isPointInPrimarySubView(const QPoint &point)

返回指定的 point 是否位于主要子视图中。如果该点位于主要子视图中,则返回 true

注意: 如果子视图重叠,并且给定的 point 在两者内部,则只有在主要子视图在顶层时,结果才为 true

bool Q3DScene::isPointInSecondarySubView(const QPoint &point)

返回指定的 point 是否位于次要子视图中。如果该点位于次要子视图中,则返回 true

注意: 如果子视图重叠,并且给定的 point 在两者内部,则只有在次要子视图在顶层时,结果才为 true

© 2024 Qt公司。本文件中包含的文档贡献的版权各自属于其所有者。本文件提供的文档根据免费软件基金会发布的GNU自由文档许可协议第1.3版的条款进行许可。Qt及其相关标志是Qt公司在芬兰和其他国家的商标。所有其他商标均为其各自所有者的财产。