Q3DScene Class
Q3DScene 类提供可视化三维场景的描述。更多
Header: | #include <Q3DScene> |
CMake.Q3DScene 类 | find_package(Qt6 REQUIRED COMPONENTS Graphs) target_link_libraries(mytarget PRIVATE Qt6::Graphs) |
qmake: | QT += graphs |
在 QML 中: | Scene3D |
继承: | QObject |
- 所有成员的列表,包括继承成员
- Q3DScene 是Qt Graphs C++ Classes for 3D 的一部分。
属性
|
|
公共功能
Q3DScene(QObject *parent = nullptr) | |
virtual | ~Q3DScene() override |
qreal | devicePixelRatio() const |
QPoint | graphPositionQuery() const |
QPoint | invalidSelectionPoint() const |
bool | isPointInPrimarySubView(QPoint point) |
bool | isPointInSecondarySubView(QPoint point) |
bool | isSecondarySubviewOnTop() const |
bool | isSlicingActive() const |
QRect | primarySubViewport() const |
QRect | secondarySubViewport() const |
QPoint | selectionQueryPosition() const |
void | setDevicePixelRatio(qreal pixelRatio) |
void | setGraphPositionQuery(QPoint point) |
void | setPrimarySubViewport(QRect primarySubViewport) |
void | setSecondarySubViewport(QRect secondarySubViewport) |
void | setSecondarySubviewOnTop(bool isSecondaryOnTop) |
void | setSelectionQueryPosition(QPoint point) |
void | setSlicingActive(bool isSlicing) |
QRect | viewport() const |
信号
void | devicePixelRatioChanged(qreal pixelRatio) |
void | graphPositionQueryChanged(QPoint position) |
void | primarySubViewportChanged(QRect subViewport) |
void | secondarySubViewportChanged(QRect subViewport) |
void | secondarySubviewOnTopChanged(bool isSecondaryOnTop) |
void | selectionQueryPositionChanged(QPoint position) |
void | slicingActiveChanged(bool isSlicingActive) |
void | viewportChanged(QRect viewport) |
详细说明
三维场景包含一个活动相机和一个活动光源。可视化数据假定位于固定位置。
三维场景还会跟踪进行图形渲染的视口、主三维图形视图所在的视口中的主子视口以及数据的二维切片视图所在的辅助子视口。默认情况下,子视口的大小由Q3DScene 调整。要覆盖调整大小的行为,需要同时监听viewportChanged() 和slicingActiveChanged() 信号,并相应地重新计算子视口。
此外,该场景还具有跟踪辅助二维切片视图当前是否处于活动状态的标志。
注意: 并非所有图形都支持辅助二维切片视图。
属性文档
devicePixelRatio : qreal
该属性保存将输入坐标映射到像素坐标时使用的设备像素比例。
访问功能:
qreal | devicePixelRatio() const |
void | setDevicePixelRatio(qreal pixelRatio) |
通知信号:
void | devicePixelRatioChanged(qreal pixelRatio) |
graphPositionQuery : QPoint
此属性保存用户输入的坐标,场景应将其作为图形位置查询进行处理。
如果将此属性设置为invalidSelectionPoint() 以外的值,则图形会尝试将图形位置与主视口内的指定坐标相匹配。渲染结束后,该属性将返回默认状态invalidSelectionPoint() 。在下一次渲染后,可以从Q3DGraphsWidgetItem::queriedGraphPosition 属性中读取查询到的图形位置。
没有一个正确的三维坐标与特定的屏幕位置相匹配,因此为了保持一致,查询总是针对图形周围的一个不可见框的内侧进行。
注意: 条形图只允许在图形底层进行图形位置查询。
访问功能:
QPoint | graphPositionQuery() const |
void | setGraphPositionQuery(QPoint point) |
通知信号:
void | graphPositionQueryChanged(QPoint position) |
另请参见 Q3DGraphsWidgetItem::queriedGraphPosition 。
primarySubViewport : QRect
该属性用于保存视口中的当前子视口矩形,而图形的主视口则位于该子视口中。
如果主次视口未明确设置,它将是viewport() 的五分之一。
注意: 将 primarySubViewport 设置为大于视口或在视口之外时,视口的大小也会相应调整。
访问功能:
QRect | primarySubViewport() const |
void | setPrimarySubViewport(QRect primarySubViewport) |
通知信号
void | primarySubViewportChanged(QRect subViewport) |
secondarySubViewport : QRect
该属性用于保存视口中的辅助视口矩形。
在某些图形中,辅助视口用于绘制二维切片视图。如果没有明确设置,它将等于视口的大小。
注意: 如果辅助子视口大于视口或位于视口之外,则会相应调整视口大小。
访问功能:
QRect | secondarySubViewport() const |
void | setSecondarySubViewport(QRect secondarySubViewport) |
通知信号:
void | secondarySubViewportChanged(QRect subViewport) |
secondarySubviewOnTop : bool
此属性表示在顶部绘制的是二维切片视图还是三维视图。
访问功能:
bool | isSecondarySubviewOnTop() const |
void | setSecondarySubviewOnTop(bool isSecondaryOnTop) |
通知信号:
void | secondarySubviewOnTopChanged(bool isSecondaryOnTop) |
selectionQueryPosition : QPoint
此属性用于保存用户输入的坐标,场景应将其作为选择项处理。
如果将此属性设置为invalidSelectionPoint() 以外的值,则图形会尝试在主视口内指定坐标处选择数据项、轴标签或自定义项。渲染结束后,该属性将返回默认状态invalidSelectionPoint() 。
访问功能:
QPoint | selectionQueryPosition() const |
void | setSelectionQueryPosition(QPoint point) |
Notifier 信号:
void | selectionQueryPositionChanged(QPoint position) |
另请参阅 Q3DGraphsWidgetItem::selectedElement 。
slicingActive : bool
此属性表示二维切片视图当前是否处于活动状态。
如果true
,Q3DGraphsWidgetItem::selectionMode 必须将QtGraphs3D::SelectionFlag::Row 或QtGraphs3D::SelectionFlag::Column 设置为有效选择。
注意: 并非所有图形都支持二维切片视图。
访问功能:
bool | isSlicingActive() const |
void | setSlicingActive(bool isSlicing) |
通知信号:
void | slicingActiveChanged(bool isSlicingActive) |
[read-only]
viewport : const QRect
此属性为只读属性,包含当前视口矩形,所有 3D 渲染都以该矩形为目标。
访问功能:
QRect | viewport() const |
通知信号:
void | viewportChanged(QRect viewport) |
成员函数 文档
[explicit]
Q3DScene::Q3DScene(QObject *parent = nullptr)
构造一个包含一个灯光和一个摄像机的基本场景。可选择给出parent 参数,然后将其传递给QObject 构造函数。
[override virtual noexcept]
Q3DScene::~Q3DScene()
销毁 3D 场景及其中包含的所有对象。
QPoint Q3DScene::invalidSelectionPoint() const
返回表示无效选择位置的QPoint 。
注: 属性 invalidSelectionPoint 的获取函数。
bool Q3DScene::isPointInPrimarySubView(QPoint point)
返回给定的point 是否位于主子视图内。如果该点位于主子视图内,则返回true
。
注: 如果子视图是叠加的,且给定的point 同时位于两个子视图内,则只有当主子视图位于顶部时,结果才是true
。
bool Q3DScene::isPointInSecondarySubView(QPoint point)
返回给定的point 是否位于二级子视图内。如果该点位于二级子视图内,则返回true
。
注: 如果子视图是叠加的,而给定的point 同时位于两个子视图内,则只有当二级子视图位于顶部时,结果才是true
。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.