QSurfaceDataProxy 类

QSurfaceDataProxy 类是 3D 表面图的代理数据。更多信息...

头文件 #include <QSurfaceDataProxy>
CMakefind_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmakeQT += graphs
由以下实例化 SurfaceDataProxy
继承自 QAbstractDataProxy
以下类继承自

QHeightMapSurfaceDataProxyQItemModelSurfaceDataProxy

状态技术预览

属性

公共函数

QSurfaceDataProxy(QObject *parent = nullptr)
virtual~QSurfaceDataProxy() override
intaddRow(QSurfaceDataRow row)
intaddRows(QSurfaceDataArray rows)
const QSurfaceDataArray &array() const
intcolumnCount() const
voidinsertRow(int rowIndex, QSurfaceDataRow row)
voidinsertRows(int rowIndex, QSurfaceDataArray rows)
const QSurfaceDataItem &itemAt(int rowIndex, int columnIndex) const
const QSurfaceDataItem &itemAt(const QPoint &position) const
voidremoveRows(int rowIndex, int removeCount)
voidresetArray()
voidresetArray(QSurfaceDataArray newArray)
introwCount() const
QSurface3DSeries *series() const
voidsetItem(int rowIndex, int columnIndex, QSurfaceDataItem item)
voidsetItem(const QPoint &position, QSurfaceDataItem item)
voidsetRow(int rowIndex, QSurfaceDataRow row)
voidsetRows(int rowIndex, QSurfaceDataArray rows)

信号

voidarrayReset()
voidcolumnCountChanged(int count)
voiditemChanged(int rowIndex, int columnIndex)
voidrowCountChanged(int count)
voidrowsAdded(int startIndex, int count)
voidrowsChanged(int startIndex, int count)
voidrowsInserted(int startIndex, int count)
voidrowsRemoved(int startIndex, int count)
voidseriesChanged(QSurface3DSeries *series)

详细描述

表面数据代理处理行相关的数据。为此,它提供了两种辅助类型别名:QtGraphs::QSurfaceDataArray 和 QtGraphs::QSurfaceDataRow。 QSurfaceDataArray 是一个控制行的 QListQSurfaceDataRow 是一个包含 QSurfaceDataItem 对象的 QList。有关如何向代理提供数据的更多信息,请参阅 Q3DSurface 文档中的示例代码。

所有行必须具有相同数量的项。

QSurfaceDataProxy 取得所有传递给它的 QSurfaceDataRow 对象的所有权,无论是直接还是在一个 QSurfaceDataArray 容器中。要在将数组添加到代理后直接修改数据,必须发出适当的信号以更新图表。

为了制作合理的表面,所有行中连续项的 x 值必须是整个行中的递增或递减。类似地,所有列中连续项的 z 值必须是整个列中的递增或递减。

注意:当前仅完全支持具有直线行和列的表面。如果整个表面不完全适合可见的 x 轴或 z 轴范围,则可能无法正确剪切具有不同 z 值的项的行或具有不同 x 值的项的列。

注意:少于两行或列的表面被认为不是有效的表面,并且将不会进行渲染。

注意:在某些环境中,由于超出图形驱动程序支持的每渲染绘制顶点数,很多可见顶点的表面可能无法渲染。这主要是在 32 位和 OpenGL ES2 平台上。

另请参阅:使用 3D 处理 Qt 图表数据

属性文档

[只读] columnCount : const int

此属性包含数据数组中的列数。

访问函数

intcolumnCount() const

通知信号

voidcolumnCountChanged(int count)

[只读] rowCount : const int

此属性包含数据数组中的行数。

访问函数

introwCount() const

通知信号

voidrowCountChanged(int count)

[只读] series : QSurface3DSeries* const

此属性保存了代理附加到的系列。

访问函数

QSurface3DSeries *series() const

通知信号

voidseriesChanged(QSurface3DSeries *series)

成员函数文档

[explicit] QSurfaceDataProxy::QSurfaceDataProxy(QObject *parent = nullptr)

使用给定的 parent 构建QSurfaceDataProxy。

[override virtual noexcept] QSurfaceDataProxy::~QSurfaceDataProxy()

删除表面数据代理。

int QSurfaceDataProxy::addRow(QSurfaceDataRow row)

将新行 row 添加到数组的末尾。新行必须与初始数组的行数相同。

返回所添加行的索引。

int QSurfaceDataProxy::addRows(QSurfaceDataArray rows)

将新行 rows 添加到数组的末尾。新行必须与初始数组的行数相同。

返回第一个添加行的索引。

const QSurfaceDataArray &QSurfaceDataProxy::array() const

返回数据数组的指针。

[signal] void QSurfaceDataProxy::arrayReset()

当数据数组被重置时发出此信号。如果整个数组的全部内容更改而没有调用 resetArray(),则需要发出此信号以更新图表。

void QSurfaceDataProxy::insertRow(int rowIndex, QSurfaceDataRow row)

在新 rowIndex 中插入新行 row。如果 rowIndex 等于数组大小,则将行添加到数组的末尾。新行必须与初始数组的行数相同。

void QSurfaceDataProxy::insertRows(int rowIndex, QSurfaceDataArray rows)

rowIndex 中插入新 rows。如果 rowIndex 等于数组大小,则将行添加到数组的末尾。新 rows 必须与初始数组的行数相同。

const QSurfaceDataItem &QSurfaceDataProxy::itemAt(int rowIndex, int columnIndex) const

返回在 rowIndexcolumnIndex 位置的项目指针。它保证只在使用数据修改的下一次调用中有效。

const QSurfaceDataItem &QSurfaceDataProxy::itemAt(const QPoint &position) const

返回指向位置 position 的项的指针。该位置的 x 值表示行索引,y 值表示列索引。只保证在修改数据的下一个调用之前该项有效。

[信号] void QSurfaceDataProxy::itemChanged(int rowIndex, int columnIndex)

当索引位置为 rowIndexcolumnIndex 的项发生更改时,会发出此信号。如果在数组中更改了项而没有调用 setItem(),则需要发出此信号以更新图表。

void QSurfaceDataProxy::removeRows(int rowIndex, int removeCount)

从位置 rowIndex 开始删除指定行数的行。尝试删除数组的末尾之后的行不会执行任何操作。

void QSurfaceDataProxy::resetArray()

清除现有数组并触发 arrayReset() 信号。

void QSurfaceDataProxy::resetArray(QSurfaceDataArray newArray)

设置从 newArray 的数组。如果新数组与现有数组相等,则此函数会简单地触发 arrayReset() 信号。

[信号] void QSurfaceDataProxy::rowsAdded(int startIndex, int count)

当从 startIndex 位置开始添加指定行数的行时,会发出此信号。如果在未调用 addRow() 或 addRows() 的情况下向数组中添加行,则需要发出此信号以更新图表。

[信号] void QSurfaceDataProxy::rowsChanged(int startIndex, int count)

当从位置 startIndex 开始更改指定行数的行时,会发出此信号。如果在未调用 setRow() 或 setRows() 的情况下更改数组中的行,则需要发出此信号以更新图表。

[信号] void QSurfaceDataProxy::rowsInserted(int startIndex, int count)

当在 startIndex 位置插入指定行数的行时,会发出此信号。

如果在未调用 insertRow() 或 insertRows() 的情况下向数组插入行,则需要发出此信号以更新图表。

[信号] void QSurfaceDataProxy::rowsRemoved(int startIndex, int count)

当从 startIndex 位置开始删除指定行数的行时,会发出此信号。

索引是删除数组末端的行后的当前数组大小。如果没有调用 removeRows(),则需要对此信号进行发射以更新图形。

void QSurfaceDataProxy::setItem(int rowIndex, int columnIndex, QSurfaceDataItem item)

更改位置由 rowIndexcolumnIndex 指定处的单个项目为项目 item

void QSurfaceDataProxy::setItem(const QPoint &position, QSurfaceDataItem item)

将位置 position 处的单个项目更改为项目 itemposition 的 x 值表示行,y 值表示列。

void QSurfaceDataProxy::setRow(int rowIndex, QSurfaceDataRow row)

通过使用 row 中指定的新行替换位置 rowIndex 处的现有行来更改现有行。新行可以与已存储在 rowIndex 位置处的现有行相同。新行必须与替换行具有相同的列数。

void QSurfaceDataProxy::setRows(int rowIndex, QSurfaceDataArray rows)

通过使用 rows 中指定的新行替换位置 rowIndex 开始的行来更改现有行。在 rows 数组中的行可以与已存储在 rowIndex 中的现有行相同。新行必须与替换行具有相同的列数。

相关非成员

[别名] QSurfaceDataArray

指向 QSurfaceDataRow 对象的指针列表。

[别名] QSurfaceDataRow

QSurfaceDataItem 对象的列表。

© 2024 Qt 公司。本文档中包含的文档贡献属于其各自的拥有者。本文档受 GNU 自由文档许可证版本 1.3 的许可,由自由软件基金会发布。Qt 及相关标志是芬兰的 Qt 公司及其它国家和地区注册的 商标。所有其他商标均为其各自拥有者的财产。