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
处的现有行相同。新行必须具有与它们替换的行相同的列数。