PySide6.QtGraphsWidgets.Q3DScatterWidgetItem¶
- class Q3DScatterWidgetItem¶
Q3DScatterWidgetItem类提供了用于渲染3D散点图的方法。更多…概要¶
属性¶
axisXᅟ- 活动的x轴axisYᅟ- 活动的 y 轴axisZᅟ- 活动的z轴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散点图并通过自由旋转场景来查看它们。旋转是通过按住鼠标右键并移动鼠标来实现的,而缩放则是通过使用鼠标滚轮来完成的。如果启用,选择是通过鼠标左键来执行的。通过点击鼠标滚轮,可以将场景重置为默认的相机视图。在触摸设备上,旋转是通过点击并移动来实现的,选择是通过长按来实现的,而缩放则是通过捏合来实现的。
如果没有明确设置轴到
Q3DScatterWidgetItem,则会创建没有标签的临时默认轴。这些默认轴可以通过轴访问器进行修改,但一旦为方向明确设置了任何轴,该方向的默认轴将被销毁。Q3DScatterWidgetItem支持同时显示多个系列。Q3DScatterWidgetItem支持透明度。此功能允许您调整散点的透明度,使它们部分透明、完全透明或不透明。如何构建一个最小的Q3DScatterWidgetItem图表¶
首先,构造
Q3DScatterWidgetItem。由于我们在这个示例中将图形作为顶层窗口运行,我们需要清除默认设置的Qt::FramelessWindowHint标志:quickWidget = QQuickWidget() scatter = Q3DScatterWidgetItem() scatter.setWidget(quickWidget) scatter.widget().setMinimumSize(QSize(256, 256))
现在
Q3DScatterWidgetItem已准备好接收要渲染的数据。添加一系列包含3个 QVector3D 项的数据:注意
在新的代理-系列关系中,数据保存在系列中。因此,为了使代理能够添加、删除或编辑数据,首先创建系列是一个先决条件。
series = QScatter3DSeries() data = QScatterDataArray() data << QScatterDataItem(0.5f, 0.5f, 0.5f) << QScatterDataItem(-0.3f, -0.5f, -0.4f) << QScatterDataItem(0.0f, -0.3f, 0.2f) series.dataProxy().addItems(data) scatter.addSeries(series)
最后你需要将其设置为可见:
scatter.widget().show()
创建并显示此图表所需的完整代码如下:
if __name__ == "__main__": app = QApplication([]) quickWidget = QQuickWidget() scatter = Q3DScatterWidgetItem() scatter.setWidget(quickWidget) scatter.widget().setMinimumSize(QSize(256, 256)) series = QScatter3DSeries() data = QScatterDataArray() data << QScatterDataItem(0.5f, 0.5f, 0.5f) << QScatterDataItem(-0.3f, -0.5f, -0.4f) << QScatterDataItem(0.0f, -0.3f, 0.2f) series.dataProxy().addItems(data) scatter.addSeries(series) scatter.widget().show() sys.exit(app.exec())
这就是这几行代码产生的结果:
场景可以旋转、放大,并且可以选择一个项目来查看其位置,但这个最小代码示例中不包含其他交互。您可以通过熟悉提供的示例来了解更多信息,例如Simple Scatter Graph。
注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property axisXᅟ: QValue3DAxis¶
此属性保存活动的x轴。
将
axis设置为活动的x轴。隐式调用addAxis()以将轴的所有权转移到此图表。如果
axis为空,则会创建一个没有标签且自动调整范围的临时默认轴。如果显式设置了另一个轴到相同的方向,则此临时轴将被销毁。另请参阅
- Access functions:
- property axisYᅟ: QValue3DAxis¶
此属性保存活动的 y 轴。
将
axis设置为活动的y轴。隐式调用addAxis()以将轴的所有权转移到此图表。如果
axis为空,则会创建一个没有标签且自动调整范围的临时默认轴。如果显式设置了另一个轴到相同的方向,这个临时轴将被销毁。另请参阅
- Access functions:
- property axisZᅟ: QValue3DAxis¶
此属性保存活动的z轴。
将
axis设置为活动的z轴。隐式调用addAxis()以将轴的所有权转移到此图表。如果
axis为空,则会创建一个没有标签且自动调整范围的临时默认轴。如果显式设置了另一个轴到相同的方向,则此临时轴将被销毁。另请参阅
- Access functions:
- property selectedSeriesᅟ: QScatter3DSeries¶
此属性保存选定的系列或为空。
- Access functions:
构造一个新的3D散点图,带有可选的
parent。- addAxis(axis)¶
- Parameters:
axis –
QValue3DAxis
将
axis添加到图表中。通过addAxis添加的轴尚未被使用,addAxis仅用于将axis的所有权赋予图表。axis不能为空或已添加到另一个图表中。- addSeries(series)¶
- Parameters:
series –
QScatter3DSeries
将
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ᅟ的通知信号。- releaseAxis(axis)¶
- Parameters:
axis –
QValue3DAxis
如果
axis被添加到此图中,则将其所有权释放回调用者。如果释放的axis正在使用中,将创建一个新的默认轴并设置为活动状态。如果默认轴被释放并稍后重新添加,它的行为将与其他任何轴相同。
- removeSeries(series)¶
- Parameters:
series –
QScatter3DSeries
从图表中移除
series。另请参阅
- selectedSeries()¶
- Return type:
属性
selectedSeriesᅟ的获取器。- selectedSeriesChanged(series)¶
- Parameters:
series –
QScatter3DSeries
属性
selectedSeriesᅟ的通知信号。- seriesList()¶
- Return type:
返回添加到该图表的系列列表。
另请参阅
- setAxisX(axis)¶
- Parameters:
axis –
QValue3DAxis
另请参阅
属性
axisXᅟ的设置器。- setAxisY(axis)¶
- Parameters:
axis –
QValue3DAxis
另请参阅
属性
axisYᅟ的设置器。- setAxisZ(axis)¶
- Parameters:
axis –
QValue3DAxis
另请参阅
属性
axisZᅟ的设置器。