PySide6.QtGraphs.QSurfaceDataProxy¶
- class QSurfaceDataProxy¶
QSurfaceDataProxy类是3D表面图的数据代理。更多…继承者:
QItemModelSurfaceDataProxy,QHeightMapSurfaceDataProxy概要¶
属性¶
columnCountᅟ- 数据数组中的列数rowCountᅟ- 数据数组中的行数seriesᅟ- 此代理已附加到
方法¶
def
__init__()def
addRow()def
addRows()def
columnCount()def
insertRow()def
insertRows()def
itemAt()def
removeRows()def
resetArray()def
resetArrayNp()def
rowCount()def
series()def
setItem()def
setRow()def
setRows()
信号¶
def
arrayReset()def
itemChanged()def
rowsAdded()def
rowsChanged()def
rowsInserted()def
rowsRemoved()def
seriesChanged()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
表面数据代理处理与表面相关的行数据。为此,它提供了两个辅助类型别名:QtGraphs::QSurfaceDataArray 和 QtGraphs::QSurfaceDataRow。
QSurfaceDataArray是一个控制行的 QList。QSurfaceDataRow是一个包含QSurfaceDataItem对象的 QList。有关如何将数据提供给代理的更多信息,请参阅Q3DSurfaceWidgetItem文档中的示例代码。由于数据是按系列存储的,因此在使用这些函数处理数据集之前,需要创建一个与代理关联的系列。所有行必须具有相同数量的项目。
QSurfaceDataProxy拥有所有传递给它的QSurfaceDataRow对象的所有权,无论是直接传递还是通过QSurfaceDataArray容器传递。要在将数组添加到代理后使用表面数据行指针直接修改数据,必须发出适当的信号以更新图表。为了生成一个合理的表面,所有行中每个连续项的x值必须在该行中递增或递减。同样,所有列中每个连续项的z值必须在该列中递增或递减。
注意
目前仅完全支持具有直线行和列的表面。如果整个表面不完全适合可见的x轴或z轴范围,则任何行中具有不完全相同z值的项目或任何列中具有不完全相同x值的项目可能会被错误地裁剪。
注意
少于两行或两列的表面不被视为有效表面,将不会被渲染。
注意
在某些环境中,具有大量可见顶点的表面可能无法渲染,因为它们超出了图形驱动程序支持的每次绘制顶点数。这主要是在32位和OpenGL ES2平台上的问题。
另请参阅
使用3D处理Qt图形数据
注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property columnCountᅟ: int¶
此属性保存数据数组中的列数。
- Access functions:
- property rowCountᅟ: int¶
此属性保存数据数组中的行数。
- Access functions:
- property seriesᅟ: QSurface3DSeries¶
此属性保存此代理附加到的系列。
- Access functions:
使用给定的
parent构造QSurfaceDataProxy。- addRow(row)¶
- Parameters:
row – QSurfaceDataItem 的列表
- Return type:
整数
将新行
row添加到数组的末尾。新行必须与初始数组中的行具有相同的列数。返回添加行的索引。
- addRows(rows)¶
- Parameters:
rows – QSurfaceDataItem 的列表的列表
- Return type:
整数
将新的
行添加到数组的末尾。新行必须与初始数组中的行具有相同的列数。返回第一个添加行的索引。
- arrayReset()¶
当数据数组被重置时,会发出此信号。如果整个数组的内容在没有调用
resetArray()的情况下被更改,则需要发出此信号以更新图表。- columnCount()¶
- Return type:
整数
属性
columnCountᅟ的获取器。- columnCountChanged(count)¶
- Parameters:
count – int
属性
columnCountᅟ的通知信号。- insertRow(rowIndex, row)¶
- Parameters:
rowIndex – int
row – QSurfaceDataItem 的列表
将新行
row插入到rowIndex中。如果rowIndex等于数组大小,则行将添加到数组的末尾。新行必须与初始数组中的行具有相同的列数。- insertRows(rowIndex, rows)¶
- Parameters:
rowIndex – int
rows – QSurfaceDataItem 的列表的列表
将新的
rows插入到rowIndex中。如果rowIndex等于数组大小,则行将添加到数组的末尾。新的rows必须具有与初始数组中的行相同的列数。返回指向位置
position处项目的指针。position的x值表示行,y值表示列。该项目仅在下次修改数据的调用之前保证有效。- itemAt(rowIndex, columnIndex)
- Parameters:
rowIndex – int
columnIndex – int
- Return type:
返回指向由
rowIndex和columnIndex指定的位置处的项目的指针。保证仅在下次修改数据的调用之前有效。- itemChanged(rowIndex, columnIndex)¶
- Parameters:
rowIndex – int
columnIndex – int
当位于
rowIndex和columnIndex指定的位置的项目发生变化时,会发出此信号。如果项目在数组中被更改而没有调用setItem(),则需要发出此信号以更新图表。- removeRows(rowIndex, removeCount)¶
- Parameters:
rowIndex – int
removeCount – int
从位置
rowIndex开始,移除由removeCount指定的行数。尝试移除超出数组末尾的行不会产生任何效果。- resetArray()¶
清除现有数组并触发
arrayReset()信号。- resetArray(newArray)
- Parameters:
newArray – QSurfaceDataItem 的列表的列表
* 从
newArray设置数组。如果新数组与现有数组相同,此函数仅触发arrayReset()信号。- resetArrayNp(x, deltaX, z, deltaZ, data)¶
- Parameters:
x – 浮点数
deltaX – 浮点数
z – 浮点数
deltaZ – 浮点数
data –
PyArrayObject
从一个包含y值的二维numpy数组中填充数据,该数组的范围从
x开始,z开始,步长分别为deltaX和deltaZ。- rowCount()¶
- Return type:
整数
属性
rowCountᅟ的获取器。- rowCountChanged(count)¶
- Parameters:
count – int
属性
rowCountᅟ的通知信号。- rowsAdded(startIndex, count)¶
- Parameters:
startIndex – int
count – int
当从位置
startIndex开始添加由count指定的行数时,会发出此信号。如果行被添加到数组中而没有调用addRow()或addRows(),则需要发出此信号以更新图表。- rowsChanged(startIndex, count)¶
- Parameters:
startIndex – int
count – int
当从位置
startIndex开始,由count指定的行数发生变化时,会发出此信号。如果在没有调用setRow()或setRows()的情况下更改了数组中的行,则需要发出此信号以更新图表。- rowsInserted(startIndex, count)¶
- Parameters:
startIndex – int
count – int
当在位置
startIndex插入由count指定的行数时,会发出此信号。如果行被插入到数组中没有调用
insertRow()或insertRows(),则需要发出此信号以更新图表。- rowsRemoved(startIndex, count)¶
- Parameters:
startIndex – int
count – int
当从位置
startIndex开始移除由count指定的行数时,会发出此信号。如果从数组的末尾移除了行,则索引是当前数组的大小。如果从数组中移除了行而没有调用
removeRows(),则需要发出此信号以更新图表。- series()¶
- Return type:
属性
seriesᅟ的获取器。- seriesChanged(series)¶
- Parameters:
series –
QSurface3DSeries
属性
seriesᅟ的通知信号。- setItem(position, item)¶
- Parameters:
position –
QPoint项目 –
QSurfaceDataItem
将位置
position处的单个项目更改为项目item。position的 x 值表示行,y 值表示列。- setItem(rowIndex, columnIndex, item)
- Parameters:
rowIndex – int
columnIndex – int
项目 –
QSurfaceDataItem
将位于
rowIndex和columnIndex指定的位置的单个项目更改为项目item。- setRow(rowIndex, row)¶
- Parameters:
rowIndex – int
row – QSurfaceDataItem 的列表
通过用
row指定的新行替换rowIndex位置的行来更改现有行。新行可以与已存储在rowIndex位置的现有行相同。新行必须具有与它替换的行相同的列数。- setRows(rowIndex, rows)¶
- Parameters:
rowIndex – int
rows – QSurfaceDataItem 的列表的列表
通过用
rows指定的新行替换从rowIndex位置开始的行来更改现有行。rows数组中的行可以与已经存储在rowIndex处的现有行相同。新行必须具有与它们替换的行相同的列数。