Q3DScene 类
Q3DScene 类提供对正在可视化的 3D 场景的描述。更多...
头文件 | #include <Q3DScene> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Graphs) target_link_libraries(mytarget PRIVATE Qt6::Graphs) |
qmake | QT += graphs |
由以下实例化 | Scene3D |
继承自 | QObject |
状态 | 技术预览 |
- 所有成员列表,包括继承成员
- Q3DScene 是 Qt 图形 C++ 3D 类 的一部分。
属性
|
|
公共函数
Q3DScene(QObject *parent = nullptr) | |
virtual | ~Q3DScene() override |
float | devicePixelRatio() const |
QPoint | graphPositionQuery() const |
QPoint | invalidSelectionPoint() const |
bool | isPointInPrimarySubView(const QPoint &point) |
bool | isPointInSecondarySubView(const QPoint &point) |
bool | isSecondarySubviewOnTop() const |
bool | isSlicingActive() const |
QRect | primarySubViewport() const |
QRect | secondarySubViewport() const |
const QPoint | selectionQueryPosition() const |
void | setDevicePixelRatio(float pixelRatio) |
void | setGraphPositionQuery(const QPoint &point) |
void | setPrimarySubViewport(const QRect &primarySubViewport) |
void | setSecondarySubViewport(const QRect &secondarySubViewport) |
void | setSecondarySubviewOnTop(bool isSecondaryOnTop) |
void | setSelectionQueryPosition(const QPoint &point) |
void | setSlicingActive(bool isSlicing) |
QRect | viewport() const |
信号
void | devicePixelRatioChanged(浮点型 pixelRatio) |
void | graphPositionQueryChanged(const QPoint &position) |
void | primarySubViewportChanged(const QRect &subViewport) |
void | secondarySubViewportChanged(const QRect &subViewport) |
void | secondarySubviewOnTopChanged(bool isSecondaryOnTop) |
void | selectionQueryPositionChanged(const QPoint &position) |
void | slicingActiveChanged(bool isSlicingActive) |
void | viewportChanged(const QRect &viewport) |
详细描述
3D场景包含一个活动相机和一个活动光源。可视数据假定在固定位置。
3D场景还跟踪图形渲染的视口,视图中主要3D图形视图的初级子视口,以及数据2D切片视图的次级子视口。默认情况下,子视口由Q3DScene调整大小。要覆盖调整大小行为,需要监听viewportChanged()和slicingActiveChanged()信号,并相应地重新计算子视口。
此外,场景还有标志以跟踪次级2D切片视图是否当前处于活动状态。
注意:并非所有图表都支持次级2D切片视图。
属性文档
devicePixelRatio : float
此属性持有用于将输入坐标映射到像素坐标的设备像素比。
访问函数
float | devicePixelRatio() const |
void | setDevicePixelRatio(float pixelRatio) |
通知器信号
void | devicePixelRatioChanged(float pixelRatio) |
graphPositionQuery : QPoint
此属性持有应由场景作为图形位置查询处理的用户输入坐标。
如果此属性设置为除invalidSelectionPoint()以外的值,则图表尝试将指定的坐标与主视口内的图形位置匹配。在渲染阶段之后,此属性返回其默认状态invalidSelectionPoint()。在下一个渲染阶段之后,可以从QAbstract3DGraph::queriedGraphPosition属性中读取查询的图形位置。
没有单个正确的3D坐标与特定屏幕位置匹配,因此为了保持一致,查询总是针对围绕图表的无形盒子的内部侧面进行。
注意:柱状图仅在图表地面级别允许图形位置查询。
访问函数
QPoint | graphPositionQuery() const |
void | setGraphPositionQuery(const QPoint &point) |
通知器信号
void | graphPositionQueryChanged(const QPoint &position) |
另请参阅:QAbstract3DGraph::queriedGraphPosition.
primarySubViewport : QRect
此属性持有在视图中将其主要图形视图针对的子视口当前矩形内部。
如果 isSlicingActive() 返回 false
,则主子视窗等于 viewport()。如果 isSlicingActive() 返回 true
且未显式设置主子视窗,则主子视窗将是 viewport() 的五分之一。
注意:将主子视窗设置为大于或超出视口的尺寸将相应调整视口。
访问函数
QRect | primarySubViewport() const |
void | setPrimarySubViewport(const QRect &primarySubViewport) |
通知器信号
void | primarySubViewportChanged(const QRect &subViewport) |
secondarySubViewport : QRect
此属性保留视口内部的次级视窗矩形。
次级视窗用于在一些图表中绘制2D切片视图。如果未显式设置,它将与 QRect 相等。如果 isSlicingActive() 返回 true
,它将与 viewport 相等。
注意:如果次级子视窗大于或超出视口,将相应调整视口。
访问函数
QRect | secondarySubViewport() const |
void | setSecondarySubViewport(const QRect &secondarySubViewport) |
通知器信号
void | secondarySubViewportChanged(const QRect &subViewport) |
secondarySubviewOnTop : bool
此属性保留二维切片视图或三维视图是否绘制在最上面。
访问函数
bool | isSecondarySubviewOnTop() const |
void | setSecondarySubviewOnTop(bool isSecondaryOnTop) |
通知器信号
void | secondarySubviewOnTopChanged(bool isSecondaryOnTop) |
selectionQueryPosition : QPoint
此属性保留用户输入的坐标,应由场景作为选择进行处理。
如果此属性的值设置为与 invalidSelectionPoint() 不同的值,图表将尝试在主视图中指定坐标中选择数据项目、轴标签或自定义项。在渲染过程之后,该属性返回到其默认状态 invalidSelectionPoint。
访问函数
const QPoint | selectionQueryPosition() const |
void | setSelectionQueryPosition(const QPoint &point) |
通知器信号
void | selectionQueryPositionChanged(const QPoint &position) |
另请参阅:QAbstract3DGraph::selectedElement.
slicingActive : bool
此属性保留当前是否激活二维切片视图。
如果为 true
,则 QAbstract3DGraph::selectionMode 必须设置为有效选择之一 QAbstract3DGraph::SelectionRow 或 QAbstract3DGraph::SelectionColumn。
注意:并非所有图表都支持二维切片视图。
访问函数
bool | isSlicingActive() const |
void | setSlicingActive(bool isSlicing) |
通知器信号
void | slicingActiveChanged(bool isSlicingActive) |
[只读]
viewport : const QRect
此属性保留一个只读属性,包含所有3D渲染目标中的当前视窗矩形。
访问函数
QRect | viewport() const |
通知器信号
void | viewportChanged(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公司在芬兰和其他国家的商标。所有其他商标均为其各自所有者的财产。