PySide6.QtGraphsWidgets.Q3DSurfaceWidgetItem¶
- class Q3DSurfaceWidgetItem¶
Q3DSurfaceWidgetItem类提供了用于渲染3D表面图的方法。更多…概要¶
属性¶
axisXᅟ- 活动的x轴axisYᅟ- 活动的 y 轴axisZᅟ- 活动的z轴flipHorizontalGridᅟ- 水平轴网格是否显示在图表顶部而不是底部selectedSeriesᅟ- 选中的系列或为空
方法¶
def
__init__()def
addAxis()def
addSeries()def
axes()def
axisX()def
axisY()def
axisZ()def
releaseAxis()def
removeSeries()def
selectedSeries()def
seriesList()def
setAxisX()def
setAxisY()def
setAxisZ()
信号¶
def
axisXChanged()def
axisYChanged()def
axisZChanged()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
该类使开发人员能够渲染3D表面图,并通过自由旋转场景来查看它们。表面的视觉属性,如绘制模式和阴影,可以通过
QSurface3DSeries进行控制。Q3DSurfaceWidgetItem支持通过显示一个高亮球来选择数据点,用户可以通过左键点击(当使用默认输入处理程序时)或通过QSurface3DSeries选择。选择指针附带一个标签,默认情况下显示数据点的值和点的坐标。轴上的取值范围和标签格式可以通过
QValue3DAxis进行控制。要旋转图形,请按住鼠标右键并移动鼠标。缩放是通过鼠标滚轮完成的。这两个操作都假设使用的是默认的输入处理程序。
如果没有为
Q3DSurfaceWidgetItem显式设置轴,则会创建没有标签的临时默认轴。这些默认轴可以通过轴访问器进行修改,但一旦为方向显式设置了任何轴,该方向的默认轴将被销毁。如何构建一个最小的Q3DSurfaceWidgetItem图表¶
首先,构造
Q3DSurfaceWidgetItem。由于我们在这个示例中将图表作为顶级窗口运行,我们需要清除默认设置的Qt::FramelessWindowHint标志:quickWidget = QQuickWidget() surface = Q3DSurfaceWidgetItem() surface.setWidget(quickWidget) surface.widget().setMinimumSize(QSize(256, 256))
现在
Q3DSurfaceWidgetItem已准备好接收要渲染的数据。创建数据元素以接收值:注意
在新的代理-系列关系中,数据保存在系列中。因此,为了使代理能够添加、删除或编辑数据,首先创建系列是一个先决条件。
data = QSurfaceDataArray() dataRow1 = QSurfaceDataRow() dataRow2 = QSurfaceDataRow()
首先将数据提供给行元素,然后将它们的指针添加到数据元素中:
dataRow1 << QSurfaceDataItem(0.0f, 0.1f, 0.5f) << QSurfaceDataItem(1.0f, 0.5f, 0.5f) dataRow2 << QSurfaceDataItem(0.0f, 1.8f, 1.0f) << QSurfaceDataItem(1.0f, 1.2f, 1.0f) data << dataRow1 << dataRow2
创建一个新系列并为其设置数据:
series = QSurface3DSeries() series.dataProxy().resetArray(data) surface.addSeries(series)
最后你需要将其设置为可见:
surface.widget().show()
创建并显示此图表所需的完整代码如下:
if __name__ == "__main__": app = QApplication([]) quickWidget = QQuickWidget() surface = Q3DSurfaceWidgetItem() surface.setWidget(quickWidget) surface.widget().setMinimumSize(QSize(256, 256)) data = QSurfaceDataArray() dataRow1 = QSurfaceDataRow() dataRow2 = QSurfaceDataRow() dataRow1 << QSurfaceDataItem(0.0f, 0.1f, 0.5f) << QSurfaceDataItem(1.0f, 0.5f, 0.5f) dataRow2 << QSurfaceDataItem(0.0f, 1.8f, 1.0f) << QSurfaceDataItem(1.0f, 1.2f, 1.0f) data << dataRow1 << dataRow2 series = QSurface3DSeries() series.dataProxy().resetArray(data) surface.addSeries(series) surface.widget().show() sys.exit(app.exec())
这就是这几行代码产生的结果:
场景可以旋转、放大,并且可以选择一个表面点来查看其位置,但在这个最小的代码示例中没有包含其他交互。您可以通过熟悉提供的示例来了解更多信息,例如Surface Graph Gallery。
注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property axisXᅟ: QValue3DAxis¶
此属性保存活动的x轴。
将
axis设置为活动的x轴。隐式调用addAxis()以将轴的所有权转移到此图表。如果
axis为 null,则会创建一个没有标签且自动调整范围的临时默认轴。如果另一个轴被显式设置为相同的方向,则此临时轴将被销毁。
另请参阅
- Access functions:
- property axisYᅟ: QValue3DAxis¶
此属性保存活动的 y 轴。
将
axis设置为活动的y轴。隐式调用addAxis()以将轴的所有权转移到此图表。如果
axis为空,则会创建一个没有标签且自动调整范围的临时默认轴。如果另一个轴被显式设置为相同的方向,则此临时轴将被销毁。
另请参阅
- Access functions:
- property axisZᅟ: QValue3DAxis¶
此属性保存活动的z轴。
将
axis设置为活动的z轴。隐式调用addAxis()以将轴的所有权转移到此图表。如果
axis为空,则会创建一个没有标签且自动调整范围的临时默认轴。如果另一个轴被显式设置为相同的方向,则此临时轴将被销毁。
另请参阅
- Access functions:
- property flipHorizontalGridᅟ: bool¶
此属性表示水平轴网格是否显示在图表顶部而不是底部。
在某些使用场景中,水平轴网格大部分被表面覆盖,因此将水平轴网格显示在图表顶部而不是底部可能更有用。一个典型的用例是使用正交投影和自上而下的视角显示2D频谱图。
如果
false,水平轴网格和标签将绘制在图形的水平背景上。如果true,水平轴网格和标签将绘制在图形的另一侧,与水平背景相对。默认为false。- Access functions:
- property selectedSeriesᅟ: QSurface3DSeries¶
此属性保存选定的系列或为空。
如果selectionMode设置为
MultiSeries,此属性将保存拥有所选点的系列。- Access functions:
构造一个新的3D表面图,带有可选的
parent。- addAxis(axis)¶
- Parameters:
axis –
QValue3DAxis
将
axis添加到图表中。通过addAxis添加的轴尚未被使用,addAxis仅用于将axis的所有权赋予图表。axis不能为空或已添加到另一个图表中。- addSeries(series)¶
- Parameters:
series –
QSurface3DSeries
将
series添加到图表中。一个图表可以包含多个系列,但只有一组轴。如果新添加的系列指定了选定的项目,它将被突出显示,并且任何现有的选择将被清除。只有一个添加的系列可以有活动的选择。另请参阅
- axes()¶
- Return type:
QValue3DAxis的列表
返回所有添加的轴的列表。
另请参阅
- axisX()¶
- Return type:
另请参阅
属性
axisXᅟ的获取器。- axisXChanged(axis)¶
- Parameters:
axis –
QValue3DAxis
属性
axisXᅟ的通知信号。- axisY()¶
- Return type:
另请参阅
属性
axisYᅟ的获取器。- axisYChanged(axis)¶
- Parameters:
axis –
QValue3DAxis
属性
axisYᅟ的通知信号。- axisZ()¶
- Return type:
另请参阅
属性
axisZᅟ的获取器。- axisZChanged(axis)¶
- Parameters:
axis –
QValue3DAxis
属性
axisZᅟ的通知信号。- flipHorizontalGrid()¶
- Return type:
布尔
属性
flipHorizontalGridᅟ的获取器。- flipHorizontalGridChanged(flip)¶
- Parameters:
flip – 布尔值
属性
flipHorizontalGridᅟ的通知信号。- releaseAxis(axis)¶
- Parameters:
axis –
QValue3DAxis
如果
axis被添加到此图中,则将其所有权释放回调用者。如果释放的axis正在使用中,将创建一个新的默认轴并设置为活动状态。如果默认轴被释放并稍后重新添加,它的行为将与其他任何轴相同。
- removeSeries(series)¶
- Parameters:
series –
QSurface3DSeries
从图表中移除
series。另请参阅
- selectedSeries()¶
- Return type:
属性
selectedSeriesᅟ的获取器。- selectedSeriesChanged(series)¶
- Parameters:
series –
QSurface3DSeries
属性
selectedSeriesᅟ的通知信号。- seriesList()¶
- Return type:
返回添加到该图表的系列列表。
另请参阅
- setAxisX(axis)¶
- Parameters:
axis –
QValue3DAxis
另请参阅
属性
axisXᅟ的设置器。- setAxisY(axis)¶
- Parameters:
axis –
QValue3DAxis
另请参阅
属性
axisYᅟ的设置器。- setAxisZ(axis)¶
- Parameters:
axis –
QValue3DAxis
另请参阅
属性
axisZᅟ的设置器。- setFlipHorizontalGrid(flip)¶
- Parameters:
flip – 布尔值
另请参阅
属性
flipHorizontalGridᅟ的设置器。