QSurfaceDataProxy 类
QSurfaceDataProxy 类是 3D 表面图的代理数据。更多信息...
头文件 | #include <QSurfaceDataProxy> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Graphs) target_link_libraries(mytarget PRIVATE Qt6::Graphs) |
qmake | QT += graphs |
由以下实例化 | SurfaceDataProxy |
继承自 | QAbstractDataProxy |
以下类继承自 | |
状态 | 技术预览 |
- 包含所有成员,包括继承的成员
- QSurfaceDataProxy 是 Qt 图形 C++ 3D 类 的一部分。
属性
- columnCount : const int
- rowCount : const int
- series : QSurface3DSeries* const
公共函数
QSurfaceDataProxy(QObject *parent = nullptr) | |
virtual | ~QSurfaceDataProxy() override |
int | addRow(QSurfaceDataRow row) |
int | addRows(QSurfaceDataArray rows) |
const QSurfaceDataArray & | array() const |
int | columnCount() const |
void | insertRow(int rowIndex, QSurfaceDataRow row) |
void | insertRows(int rowIndex, QSurfaceDataArray rows) |
const QSurfaceDataItem & | itemAt(int rowIndex, int columnIndex) const |
const QSurfaceDataItem & | itemAt(const QPoint &position) const |
void | removeRows(int rowIndex, int removeCount) |
void | resetArray() |
void | resetArray(QSurfaceDataArray newArray) |
int | rowCount() const |
QSurface3DSeries * | series() const |
void | setItem(int rowIndex, int columnIndex, QSurfaceDataItem item) |
void | setItem(const QPoint &position, QSurfaceDataItem item) |
void | setRow(int rowIndex, QSurfaceDataRow row) |
void | setRows(int rowIndex, QSurfaceDataArray rows) |
信号
void | arrayReset() |
void | columnCountChanged(int count) |
void | itemChanged(int rowIndex, int columnIndex) |
void | rowCountChanged(int count) |
void | rowsAdded(int startIndex, int count) |
void | rowsChanged(int startIndex, int count) |
void | rowsInserted(int startIndex, int count) |
void | rowsRemoved(int startIndex, int count) |
void | seriesChanged(QSurface3DSeries *series) |
相关非成员
详细描述
表面数据代理处理行相关的数据。为此,它提供了两种辅助类型别名:QtGraphs::QSurfaceDataArray 和 QtGraphs::QSurfaceDataRow。 QSurfaceDataArray
是一个控制行的 QList。 QSurfaceDataRow
是一个包含 QSurfaceDataItem 对象的 QList。有关如何向代理提供数据的更多信息,请参阅 Q3DSurface 文档中的示例代码。
所有行必须具有相同数量的项。
QSurfaceDataProxy 取得所有传递给它的 QSurfaceDataRow
对象的所有权,无论是直接还是在一个 QSurfaceDataArray
容器中。要在将数组添加到代理后直接修改数据,必须发出适当的信号以更新图表。
为了制作合理的表面,所有行中连续项的 x 值必须是整个行中的递增或递减。类似地,所有列中连续项的 z 值必须是整个列中的递增或递减。
注意:当前仅完全支持具有直线行和列的表面。如果整个表面不完全适合可见的 x 轴或 z 轴范围,则可能无法正确剪切具有不同 z 值的项的行或具有不同 x 值的项的列。
注意:少于两行或列的表面被认为不是有效的表面,并且将不会进行渲染。
注意:在某些环境中,由于超出图形驱动程序支持的每渲染绘制顶点数,很多可见顶点的表面可能无法渲染。这主要是在 32 位和 OpenGL ES2 平台上。
另请参阅:使用 3D 处理 Qt 图表数据。
属性文档
[只读]
columnCount : const int
此属性包含数据数组中的列数。
访问函数
int | columnCount() const |
通知信号
void | columnCountChanged(int count) |
[只读]
rowCount : const int
此属性包含数据数组中的行数。
访问函数
int | rowCount() const |
通知信号
void | rowCountChanged(int count) |
[只读]
series : QSurface3DSeries* const
此属性保存了代理附加到的系列。
访问函数
QSurface3DSeries * | series() const |
通知信号
void | seriesChanged(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
返回在 rowIndex 和 columnIndex 位置的项目指针。它保证只在使用数据修改的下一次调用中有效。
const QSurfaceDataItem &QSurfaceDataProxy::itemAt(const QPoint &position) const
返回指向位置 position 的项的指针。该位置的 x 值表示行索引,y 值表示列索引。只保证在修改数据的下一个调用之前该项有效。
[信号]
void QSurfaceDataProxy::itemChanged(int rowIndex, int columnIndex)
当索引位置为 rowIndex 和 columnIndex 的项发生更改时,会发出此信号。如果在数组中更改了项而没有调用 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)
更改位置由 rowIndex 和 columnIndex 指定处的单个项目为项目 item。
void QSurfaceDataProxy::setItem(const QPoint &position, QSurfaceDataItem item)
将位置 position 处的单个项目更改为项目 item。 position 的 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 公司及其它国家和地区注册的 商标。所有其他商标均为其各自拥有者的财产。