QCustom3DItem 类
QCustom3DItem 类向图形中添加自定义项。 更多...
| 头文件 | #include <QCustom3DItem> | 
| CMake | find_package(Qt6 REQUIRED COMPONENTS Graphs) target_link_libraries(mytarget PRIVATE Qt6::Graphs) | 
| qmake | QT += graphs | 
| 由以下类实例化 | Custom3DItem | 
| 继承自 | QObject | 
| 由以下类继承 | |
| 状态 | 技术预览 | 
- 所有成员列表,包括继承的成员
- QCustom3DItem 是 Qt Graphs C++ 3D 类 的一部分。
属性
| 
 | 
 | 
公共函数
| QCustom3DItem(QObject *parent = nullptr) | |
| QCustom3DItem(const QString &meshFile, const QVector3D &position, const QVector3D &scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr) | |
| virtual | ~QCustom3DItem() override | 
| bool | isPositionAbsolute() const | 
| bool | isScalingAbsolute() const | 
| bool | isShadowCasting() const | 
| bool | isVisible() const | 
| QString | meshFile() const | 
| QVector3D | position() const | 
| QQuaternion | rotation() | 
| QVector3D | scaling() const | 
| void | setMeshFile(const QString &meshFile) | 
| void | setPosition(const QVector3D &position) | 
| void | setPositionAbsolute(bool positionAbsolute) | 
| void | setRotation(const QQuaternion &rotation) | 
| void | setRotationAxisAndAngle(const QVector3D &axis, float angle) | 
| void | setScaling(const QVector3D &scaling) | 
| void | setScalingAbsolute(bool scalingAbsolute) | 
| void | setShadowCasting(bool enabled) | 
| void | setTextureFile(const QString &textureFile) | 
| void | setTextureImage(const QImage &textureImage) | 
| void | setVisible(bool visible) | 
| QString | textureFile() const | 
信号
| void | meshFileChanged(const QString &meshFile) | 
| void | positionAbsoluteChanged(bool positionAbsolute) | 
| void | positionChanged(const QVector3D &position) | 
| void | rotationChanged(const QQuaternion &rotation) | 
| void | scalingAbsoluteChanged(bool scalingAbsolute) | 
| void | scalingChanged(const QVector3D &scaling) | 
| void | shadowCastingChanged(bool shadowCasting) | 
| void | textureFileChanged(const QString &textureFile) | 
| void | visibleChanged(bool visible) | 
另请参阅QAbstract3DGraph::addCustomItem。
属性文档
meshFile : QString
此属性包含项目网格文件名。
文件中的项目必须使用网格格式。其他类型可以通过Balsam资产导入工具进行转换。建议网格文件包含顶点、法和UV。
访问函数
| QString | meshFile() const | 
| void | setMeshFile(const QString &meshFile) | 
通知信号
| void | meshFileChanged(const QString &meshFile) | 
position : QVector3D
此属性以QVector3D的形式保存项目位置。
默认值为QVector3D(0.0, 0.0, 0.0)。
项目位置可以是数据坐标或绝对坐标,具体取决于positionAbsolute属性。使用绝对坐标时,-1.0...1.0之间的值位于轴范围之内。
注意:如果positionAbsolute为false,则位于轴范围之外的项目将不会渲染,除非项目是一个将部分可见的QCustom3DVolume,并且scalingAbsolute也为false。在这种情况下,将渲染可见的体积部分。
访问函数
| QVector3D | position() const | 
| void | setPosition(const QVector3D &position) | 
通知信号
| void | positionChanged(const QVector3D &position) | 
另请参阅positionAbsolute。
positionAbsolute : bool
此属性表示是否以数据坐标或绝对坐标处理项目位置。
默认值为false。具有绝对坐标的项目将始终渲染,而使用数据坐标的项目只有在它们位于轴范围内时才渲染。
访问函数
| bool | isPositionAbsolute() const | 
| void | setPositionAbsolute(bool positionAbsolute) | 
通知信号
| void | positionAbsoluteChanged(bool positionAbsolute) | 
另请参阅position.
rotation : QQuaternion
此属性包含作为QQuaternion的项旋转。
默认为QQuaternion(0.0, 0.0, 0.0, 0.0)。
访问函数
| QQuaternion | rotation() | 
| void | setRotation(const QQuaternion &rotation) | 
通知信号
| void | rotationChanged(const QQuaternion &rotation) | 
scaling : QVector3D
此属性包含作为QVector3D的项缩放。
默认为QVector3D(0.1, 0.1, 0.1)。
项缩放可能是数据值或绝对值,具体取决于scalingAbsolute属性。默认向量解释为绝对值将项设置为图表高度的10%,前提是项网格已被归一化,且图表纵横比未从默认值更改。
访问函数
| QVector3D | scaling() const | 
| void | setScaling(const QVector3D &scaling) | 
通知信号
| void | scalingChanged(const QVector3D &scaling) | 
另请参阅scalingAbsolute.
scalingAbsolute : bool
此属性包含项缩放是否处理为数据值或绝对值。
默认为true。
具有绝对缩放的项将以相同大小渲染,无论轴范围如何。具有数据缩放的项将根据轴范围更改其可见大小。如果positionAbsolute为true,则忽略此属性,并将缩放解释为绝对值。如果项具有旋转,则数据缩放将在未旋转的项上进行计算。类似地,对于QCustom3DVolume项,范围裁剪将在未旋转的项上进行计算。
注意:仅支持QCustom3DLabel项或用于polar图表的自定义项的绝对缩放。
注意:自定义项目的网格必须规范化到范围[-1 ,1],否则数据缩放将不准确。
访问函数
| bool | isScalingAbsolute() const | 
| void | setScalingAbsolute(bool scalingAbsolute) | 
通知信号
| void | scalingAbsoluteChanged(bool scalingAbsolute) | 
另请参阅scaling和positionAbsolute.
shadowCasting : bool
此属性包含是否启用项的阴影投射。
默认为true。如果为false,则无论QAbstract3DGraph::ShadowQuality如何,项都不会投射阴影。
访问函数
| bool | isShadowCasting() const | 
| void | setShadowCasting(bool enabled) | 
通知信号
| void | shadowCastingChanged(bool shadowCasting) | 
textureFile : QString
此属性包含项的纹理文件名。
如果此属性和纹理图像都未设置,则将使用纯灰色纹理。
注意:为了节省内存,从文件加载的QImage在创建纹理后将清除。
访问函数
| QString | textureFile() const | 
| void | setTextureFile(const QString &textureFile) | 
通知信号
| void | textureFileChanged(const QString &textureFile) | 
visible : bool
此属性持有项目的可见性。
默认为true。
访问函数
| bool | isVisible() const | 
| void | setVisible(bool visible) | 
通知信号
| void | visibleChanged(bool visible) | 
成员函数文档
[显式] QCustom3DItem::QCustom3DItem(QObject *parent = nullptr)
使用指定的parent构造一个自定义3D项目。
[显式] QCustom3DItem::QCustom3DItem(const QString &meshFile, const QVector3D &position, const QVector3D &scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)
使用指定的meshFile、position、scaling、rotation、texture图像和可选的parent构造一个自定义3D项目。
[覆盖虚函数 noexcept] QCustom3DItem::~QCustom3DItem()
删除自定义3D项目。
[可调用] void QCustom3DItem::setRotationAxisAndAngle(const QVector3D &axis, float angle)
从axis和angle构建旋转四元数的方便函数。
注意:此函数可以通过元对象系统从QML调用。请参阅Q_INVOKABLE。
另请参阅rotation。
void QCustom3DItem::setTextureImage(const QImage &textureImage)
将textureImage的值设置为项目的QImage。纹理默认为纯灰色。
注意:为了节省内存,在创建纹理后,给定的QImage将被清除。
© 2024 Qt公司有限。包含在此的文档贡献的版权属于各自的拥有者。本文件内提供的文档受GNU自由文档许可第1.3版的条款约束,由自由软件基金会出版。Qt及其相关标志是芬兰的Qt公司及其在全世界各地的商标。所有其他商标均是其各自所有者的财产。