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公司及其在全世界各地的商标。所有其他商标均是其各自所有者的财产。