QSurface3DSeries Class
QSurface3DSeries 类表示三维曲面图中的数据序列。更多内容...
| 头文件: | #include <QSurface3DSeries> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Graphs) target_link_libraries(mytarget PRIVATE Qt6::Graphs) |
| qmake: | QT += graphs |
| 在 QML 中: | Surface3DSeries |
| 继承自: | QAbstract3DSeries |
- 所有成员列表(包括继承的成员)
- QSurface3DSeries 属于Qt Graphs 的3D C++ 类库。
公共类型
| enum | DrawFlag { DrawWireframe, DrawSurface, DrawSurfaceAndWireframe, DrawFilledSurface } |
| flags | DrawFlags |
属性
|
公共函数
| QSurface3DSeries(QObject *parent = nullptr) | |
| QSurface3DSeries(QSurfaceDataProxy *dataProxy, QObject *parent = nullptr) | |
| virtual | ~QSurface3DSeries() override |
| QValue3DAxis * | axisX() const |
| QValue3DAxis * | axisY() const |
| QValue3DAxis * | axisZ() const |
| void | clearArray() |
| void | clearRow(qsizetype rowIndex) |
| const QSurfaceDataArray & | dataArray() const & |
| QSurfaceDataArray | dataArray() && |
| QSurfaceDataProxy * | dataProxy() const |
| QSurface3DSeries::DrawFlags | drawMode() const |
| bool | isFlatShadingSupported() const |
| void | resetAxisX() |
| void | resetAxisY() |
| void | resetAxisZ() |
| bool | rowsSanitized() const |
| QPoint | selectedPoint() const |
| void | setAxisX(QValue3DAxis *axis) |
| void | setAxisY(QValue3DAxis *axis) |
| void | setAxisZ(QValue3DAxis *axis) |
| void | setDataArray(const QSurfaceDataArray &newDataArray) |
| void | setDataProxy(QSurfaceDataProxy *proxy) |
| void | setDrawMode(QSurface3DSeries::DrawFlags mode) |
| void | setRowsSanitized(bool sanitized) |
| void | setSelectedPoint(QPoint position) |
| void | setShading(const QSurface3DSeries::Shading shading) |
| void | setTexture(const QImage &texture) |
| void | setTextureFile(const QString &filename) |
| void | setWireframeColor(QColor color) |
| QSurface3DSeries::Shading | shading() const |
| QImage | texture() const |
| QString | textureFile() const |
| QColor | wireframeColor() const |
信号
| void | axisXChanged(QValue3DAxis *axis) |
| void | axisYChanged(QValue3DAxis *axis) |
| void | axisZChanged(QValue3DAxis *axis) |
| void | dataArrayChanged(const QSurfaceDataArray &array) |
| void | dataProxyChanged(QSurfaceDataProxy *proxy) |
| void | drawModeChanged(QSurface3DSeries::DrawFlags mode) |
| void | flatShadingSupportedChanged(bool enabled) |
| void | rowsSanitizedChanged(bool newRowsSanitized) |
| void | selectedPointChanged(QPoint position) |
| void | shadingChanged(const QSurface3DSeries::Shading shading) |
| void | textureChanged(const QImage &image) |
| void | textureFileChanged(const QString &filename) |
| void | wireframeColorChanged(QColor color) |
静态公共成员
| QPoint | invalidSelectionPosition() |
详细说明
该类管理系列特有的视觉元素,以及系列数据(通过数据代理)。
关于代理与系列的关系,有几个关键点需要特别强调。 在此背景下,数据存储在系列中,用户可以通过该系列访问数据集。该系列由一个代理对象控制或表示。因此,代理可用于管理对数据的各种操作并更新实际数据集。但是,要编辑数据集,必须创建一个与该代理关联的系列。
如果未为序列显式设置数据代理,则序列会创建一个默认代理。设置另一个代理将销毁现有代理以及添加到该序列中的所有数据。
通过QAbstract3DSeries::mesh 属性设置的网格对象定义了曲面序列中选择指针的形状。
QSurface3DSeries 支持以下用于 `QAbstract3DSeries::setItemLabelFormat()` 的格式标签:
| @xTitle | 来自 x 轴的标题 |
| @yTitle | 来自 y 轴的标题 |
| @zTitle | z轴标题 |
| @xLabel | 使用x轴格式进行格式化的项目值。有关更多信息,请参阅QValue3DAxis::labelFormat 。 |
| @yLabel | 使用 y 轴格式进行格式化的项目值。有关详细信息,请参阅QValue3DAxis::labelFormat 。 |
| @zLabel | 项目值采用 z 轴的格式进行格式化。有关详细信息,请参阅QValue3DAxis::labelFormat 。 |
| @seriesName | 系列名称 |
例如:
proxy->setItemLabelFormat(QStringLiteral("@valueTitle for (@rowLabel, @colLabel): %.1f"));另请参阅 Qt Graphs 中的“3D 数据处理”。
成员类型文档
enum QSurface3DSeries::DrawFlag
flags QSurface3DSeries::DrawFlags
曲面的绘制模式。该枚举的取值可以与“或”运算符结合使用。
| 常量 | 值 | 描述 |
|---|---|---|
QSurface3DSeries::DrawWireframe | 0x1 | 仅绘制网格。 |
QSurface3DSeries::DrawSurface | 0x2 | 仅绘制曲面。 |
QSurface3DSeries::DrawSurfaceAndWireframe | DrawWireframe | DrawSurface | 同时绘制曲面和网格。 |
QSurface3DSeries::DrawFilledSurface (since Qt 6.10) | 0x4 | 为曲面绘制填充。如果 DrawSurface 尚未设置,则设置此模式也会同时设置 DrawSurface。 |
DrawFlags 类型是QFlags<DrawFlag> 的 typedef。它存储 DrawFlag 值的按“或”运算组合。
属性文档
[since 6.11] axisX : QValue3DAxis*
为该系列保留一个额外的 X 轴。如果指定了该轴,则该系列将根据该轴的最小值和最大值进行拟合。
该枚举类型在 Qt 6.11 中引入。
访问函数:
| QValue3DAxis * | axisX() const |
| void | setAxisX(QValue3DAxis *axis) |
| void | resetAxisX() |
通知器信号:
| void | axisXChanged(QValue3DAxis *axis) |
[since 6.11] axisY : QValue3DAxis*
为该数据系列设置额外的 Y 轴。如果指定了该轴,则数据系列将根据该轴的最小值和最大值进行拟合。
此枚举在 Qt 6.11 中引入。
访问函数:
| QValue3DAxis * | axisY() const |
| void | setAxisY(QValue3DAxis *axis) |
| void | resetAxisY() |
通知器信号:
| void | axisYChanged(QValue3DAxis *axis) |
[since 6.11] axisZ : QValue3DAxis*
为该系列保留一个额外的 Z 轴。如果指定了该轴,则该系列将根据该轴的最小值和最大值进行拟合。
该枚举类型在 Qt 6.11 中引入。
访问函数:
| QValue3DAxis * | axisZ() const |
| void | setAxisZ(QValue3DAxis *axis) |
| void | resetAxisZ() |
通知器信号:
| void | axisZChanged(QValue3DAxis *axis) |
dataArray : QSurfaceDataArray
该序列的数据数组。
保存数据数组的引用。
当数据数组被设置时,会触发 dataArrayChanged 信号,除非newDataArray 与上一个完全相同。
注意: 在对 dataArray 进行任何操作之前, 必须先 为相关代理创建一个系列。
访问函数:
| const QSurfaceDataArray & | dataArray() const & |
| QSurfaceDataArray | dataArray() && |
| void | setDataArray(const QSurfaceDataArray &newDataArray) |
通知器信号:
| void | dataArrayChanged(const QSurfaceDataArray &array) |
另请参阅 ` clearRow(qsizetype rowIndex)` 和 `clearArray()`。
dataProxy : QSurfaceDataProxy*
该属性保存活动数据代理。
该系列会接管其上设置的任何代理,并在添加新代理时删除先前设置的代理。代理不能为空,也不能设置为另一个系列。
访问函数:
| QSurfaceDataProxy * | dataProxy() const |
| void | setDataProxy(QSurfaceDataProxy *proxy) |
通知信号:
| void | dataProxyChanged(QSurfaceDataProxy *proxy) |
drawMode : QSurface3DSeries::DrawFlags
绘图模式。
可能的取值为DrawFlag 中的值。不允许清除所有标志。
访问函数:
| QSurface3DSeries::DrawFlags | drawMode() const |
| void | setDrawMode(QSurface3DSeries::DrawFlags mode) |
通知器信号:
| void | drawModeChanged(QSurface3DSeries::DrawFlags mode) |
[read-only] flatShadingSupported : bool
该属性用于指示当前系统是否支持曲面平铺着色。
曲面的平坦着色至少需要 GLSL 1.2 版本以及 GL_EXT_gpu_shader4 扩展。若true ,则支持曲面的平坦着色。
注意:此 只读属性会在首次渲染通过后设置为正确值。在此之前,其值始终为true 。
访问函数:
| bool | isFlatShadingSupported() const |
通知器信号:
| void | flatShadingSupportedChanged(bool enabled) |
rowsSanitized : bool
该属性用于指定是否执行行级数据清理。
当sanitized 的值为true 时,会移除系列中不包含有效数据的行。
注意:这 可能会导致性能略有下降。
访问函数:
| bool | rowsSanitized() const |
| void | setRowsSanitized(bool sanitized) |
通知器信号:
| void | rowsSanitizedChanged(bool newRowsSanitized) |
selectedPoint : QPoint
该属性存储在该序列中选定的曲面网格点。
根据行和列指定的系列,在该系列的数据数组中,选择位于position 位置的表面网格点。
每次只能选择一个点。
要清除该系列中的选择,将invalidSelectionPosition() 设置为position 。如果该系列被添加到图表中,图表会根据用户交互或选择失效的情况调整选择。
从该系列中删除行或在选定点的行之前插入行,将调整选定范围,以使该点保持选定状态。
访问函数:
| QPoint | selectedPoint() const |
| void | setSelectedPoint(QPoint position) |
通知信号:
| void | selectedPointChanged(QPoint position) |
另请参阅 Q3DGraphsWidgetItem::clearSelection()。
shading : QSurface3DSeries::Shading
该属性用于控制是否启用表面平滑着色。
默认预设值为“QSurface3DSeries::Shading::Flat ”。
当禁用时,表面法线会进行插值处理,使边缘看起来圆润。当启用时,三角形上的法线保持不变,使三角形的颜色呈现为实心。这使得模型数据更易于解读。
注意:平滑着色 表面至少需要 GLSL 1.2 版本,并支持 GL_EXT_gpu_shader4 扩展。flatShadingSupported 属性的值表示运行时是否支持平滑着色。
访问函数:
| QSurface3DSeries::Shading | shading() const |
| void | setShading(const QSurface3DSeries::Shading shading) |
通知器信号:
| void | shadingChanged(const QSurface3DSeries::Shading shading) |
texture : QImage
该属性将表面的纹理作为QImage 对象存储。
将QImage 设置为空将清除纹理。
访问函数:
| QImage | texture() const |
| void | setTexture(const QImage &texture) |
通知器信号:
| void | textureChanged(const QImage &image) |
textureFile : QString
该属性将表面的纹理以文件形式存储。
设置为空文件名将清除纹理。
访问函数:
| QString | textureFile() const |
| void | setTextureFile(const QString &filename) |
通知信号:
| void | textureFileChanged(const QString &filename) |
wireframeColor : QColor
该属性用于设置表面线框的颜色。
访问函数:
| QColor | wireframeColor() const |
| void | setWireframeColor(QColor color) |
通知器信号:
| void | wireframeColorChanged(QColor color) |
成员函数文档
[explicit] QSurface3DSeries::QSurface3DSeries(QObject *parent = nullptr)
使用父对象parent 构建一个曲面3D系列。
[explicit] QSurface3DSeries::QSurface3DSeries(QSurfaceDataProxy *dataProxy, QObject *parent = nullptr)
使用数据代理dataProxy 和父对象parent 构建一个曲面3D序列。
[override virtual noexcept] QSurface3DSeries::~QSurface3DSeries()
删除“surface 3D”系列。
void QSurface3DSeries::clearArray()
清空现有数组。
void QSurface3DSeries::clearRow(qsizetype rowIndex)
根据给定的rowIndex ,清除数组中现有的行。
[static] QPoint QSurface3DSeries::invalidSelectionPosition()
返回QPoint ,表示选择位置无效。将此值设置为selectedPoint 属性,可清除该系列中的选择。
© 2026 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.