PySide6.QtGraphsWidgets.Q3DScatterWidgetItem

class Q3DScatterWidgetItem

Q3DScatterWidgetItem 类提供了用于渲染3D散点图的方法。更多

PySide6.QtGraphsWidgets.Q3DScatterWidgetItem 的继承图

概要

属性

方法

信号

注意

本文档可能包含从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())

这就是这几行代码产生的结果:

../../_images/q3dscatter-minimal.png

场景可以旋转、放大,并且可以选择一个项目来查看其位置,但这个最小代码示例中不包含其他交互。您可以通过熟悉提供的示例来了解更多信息,例如Simple Scatter Graph

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property axisXᅟ: QValue3DAxis

此属性保存活动的x轴。

axis设置为活动的x轴。隐式调用addAxis()以将轴的所有权转移到此图表。

如果 axis 为空,则会创建一个没有标签且自动调整范围的临时默认轴。如果显式设置了另一个轴到相同的方向,则此临时轴将被销毁。

另请参阅

addAxis() releaseAxis()

Access functions:
property axisYᅟ: QValue3DAxis

此属性保存活动的 y 轴。

axis设置为活动的y轴。隐式调用addAxis()以将轴的所有权转移到此图表。

如果 axis 为空,则会创建一个没有标签且自动调整范围的临时默认轴。如果显式设置了另一个轴到相同的方向,这个临时轴将被销毁。

另请参阅

addAxis() releaseAxis()

Access functions:
property axisZᅟ: QValue3DAxis

此属性保存活动的z轴。

axis设置为活动的z轴。隐式调用addAxis()以将轴的所有权转移到此图表。

如果 axis 为空,则会创建一个没有标签且自动调整范围的临时默认轴。如果显式设置了另一个轴到相同的方向,则此临时轴将被销毁。

另请参阅

addAxis() releaseAxis()

Access functions:
property selectedSeriesᅟ: QScatter3DSeries

此属性保存选定的系列或为空。

Access functions:
__init__([parent=None])
Parameters:

父对象QObject

构造一个新的3D散点图,带有可选的parent

addAxis(axis)
Parameters:

axisQValue3DAxis

axis添加到图表中。通过addAxis添加的轴尚未被使用,addAxis仅用于将axis的所有权赋予图表。axis不能为空或已添加到另一个图表中。

addSeries(series)
Parameters:

seriesQScatter3DSeries

series添加到图表中。一个图表可以包含多个系列,但只有一组轴。如果新添加的系列指定了选定的项目,它将被突出显示,并且任何现有的选择将被清除。只有一个添加的系列可以有活动的选择。

另请参阅

hasSeries()

axes()
Return type:

QValue3DAxis的列表

返回所有添加的轴的列表。

另请参阅

addAxis()

axisX()
Return type:

QValue3DAxis

另请参阅

setAxisX()

属性 axisXᅟ 的获取器。

axisXChanged(axis)
Parameters:

axisQValue3DAxis

属性 axisXᅟ 的通知信号。

axisY()
Return type:

QValue3DAxis

另请参阅

setAxisY()

属性 axisYᅟ 的获取器。

axisYChanged(axis)
Parameters:

axisQValue3DAxis

属性 axisYᅟ 的通知信号。

axisZ()
Return type:

QValue3DAxis

另请参阅

setAxisZ()

属性 axisZᅟ 的获取器。

axisZChanged(axis)
Parameters:

axisQValue3DAxis

属性 axisZᅟ 的通知信号。

releaseAxis(axis)
Parameters:

axisQValue3DAxis

如果axis被添加到此图中,则将其所有权释放回调用者。如果释放的axis正在使用中,将创建一个新的默认轴并设置为活动状态。

如果默认轴被释放并稍后重新添加,它的行为将与其他任何轴相同。

removeSeries(series)
Parameters:

seriesQScatter3DSeries

从图表中移除series

另请参阅

hasSeries()

selectedSeries()
Return type:

QScatter3DSeries

属性 selectedSeriesᅟ 的获取器。

selectedSeriesChanged(series)
Parameters:

seriesQScatter3DSeries

属性 selectedSeriesᅟ 的通知信号。

seriesList()
Return type:

QScatter3DSeries的列表

返回添加到该图表的系列列表。

另请参阅

hasSeries()

setAxisX(axis)
Parameters:

axisQValue3DAxis

另请参阅

axisX()

属性 axisXᅟ 的设置器。

setAxisY(axis)
Parameters:

axisQValue3DAxis

另请参阅

axisY()

属性 axisYᅟ 的设置器。

setAxisZ(axis)
Parameters:

axisQValue3DAxis

另请参阅

axisZ()

属性 axisZᅟ 的设置器。