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ᅟ
的设置器。