PySide6.QtGraphsWidgets.Q3DBarsWidgetItem

class Q3DBarsWidgetItem

Q3DBarsWidgetItem 类提供了渲染3D柱状图的方法。更多

PySide6.QtGraphsWidgets.Q3DBarsWidgetItem 的继承图

概要

属性

方法

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

该类使开发者能够渲染3D条形图并通过自由旋转场景来查看它们。旋转是通过按住鼠标右键并移动鼠标来实现的,而缩放则是通过使用鼠标滚轮来完成的。如果启用,选择是通过鼠标左键来执行的。通过点击鼠标滚轮,可以将场景重置为默认的摄像机视图。在触摸设备上,旋转是通过点击并移动来实现的,选择是通过点击并按住来实现的,而缩放则是通过捏合来实现的。

如果没有为Q3DBarsWidgetItem显式设置轴,则会创建没有标签的临时默认轴。这些默认轴可以通过轴访问器进行修改,但一旦为某个方向显式设置了任何轴,该方向的默认轴就会被销毁。

Q3DBarsWidgetItem 支持同时显示多个系列。所有系列不需要具有相同的行数和列数。行和列标签取自第一个添加的系列,除非为行和列轴明确定义了标签。

Q3DBarsWidgetItem 支持透明度。此功能允许您调整柱状图的不透明度,使其部分透明、完全透明或不透明。

如何构建一个最小的Q3DBarsWidgetItem图表

首先,构造一个Q3DBarsWidgetItem的实例。由于我们在这个示例中将图表作为顶级窗口运行,我们需要清除默认设置的Qt::FramelessWindowHint标志:

quickWidget = QQuickWidget()
bars = Q3DBarsWidgetItem()
bars.setWidget(quickWidget)
bars.widget().setMinimumSize(QSize(256, 256))

在构建Q3DBarsWidgetItem之后,您可以通过更改行和列轴上的范围来设置数据窗口。这不是强制性的,因为数据窗口默认会显示系列中的所有数据。如果数据量很大,通常最好只显示其中的一部分。例如,让我们将数据窗口设置为显示前五行和列:

bars.rowAxis().setRange(0, 4)
bars.columnAxis().setRange(0, 4)

现在,Q3DBarsWidgetItem 已经准备好接收要渲染的数据。创建一个包含一行5个值的系列:

series = QBar3DSeries()
data = QBarDataRow()
data << QBarDataItem(1.0f) << QBarDataItem(3.0f) << QBarDataItem(7.5f) << QBarDataItem(5.0f)
     << QBarDataItem(2.2f)
series.dataProxy().addRow(data)
bars.addSeries(series)

注意

我们将数据窗口设置为5 x 5,但我们只添加了一行数据。这是可以的;其余的行将只是空白。

最后你需要将其设置为可见:

bars.widget().show()

创建并显示此图表所需的完整代码如下:

if __name__ == "__main__":

    app = QApplication([])
    quickWidget = QQuickWidget()
    bars = Q3DBarsWidgetItem()
    bars.setWidget(quickWidget)
    bars.widget().setMinimumSize(QSize(256, 256))
    bars.rowAxis().setRange(0, 4)
    bars.columnAxis().setRange(0, 4)
    series = QBar3DSeries()
    data = QBarDataRow()
    data << QBarDataItem(1.0f) << QBarDataItem(3.0f) << QBarDataItem(7.5f) << QBarDataItem(5.0f)
         << QBarDataItem(2.2f)
    series.dataProxy().addRow(data)
    bars.addSeries(series)
    bars.widget().show()
    sys.exit(app.exec())

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

../../_images/q3dbars-minimal.png

场景可以旋转、放大,并且可以选择一个条形图来查看其值,但在这个最小代码示例中没有包含其他交互。您可以通过熟悉提供的示例来了解更多信息,例如Simple Bar Graph

注意

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

property barSeriesMarginᅟ: QSizeF

此属性表示在X和Z维度上系列列之间的边距。合理的值范围是[0,1)。

默认预设为(0.0, 0.0)。此属性允许显示不同系列的柱状图并排显示,但列之间留有空间。

另请参阅

barSpacing

Access functions:
property barSpacingᅟ: QSizeF

此属性保存X和Z维度中的条形间距。

预设为 (1.0, 1.0) 默认值。间距受 barSpacingRelative 属性影响。

另请参阅

barSpacingRelative multiSeriesUniform barSeriesMargin

Access functions:
property barSpacingRelativeᅟ: bool

此属性决定间距是绝对的还是相对于条形的厚度。

如果它是true0.0的值表示条形图并排放置,1.0表示在条形图之间留出一个与条形图厚度相同的空间,依此类推。预设为true

Access functions:
property barThicknessᅟ: float

此属性保存X和Z维度之间的条厚度比例。

1.0 表示条的宽度与深度相同,而 0.5 使它们的深度是宽度的两倍。默认预设为 1.0

Access functions:
property columnAxisᅟ: QCategory3DAxis

此属性保存附加到活动列的轴。

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

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

另请参阅

addAxis() releaseAxis()

Access functions:
property floorLevelᅟ: float

此属性保存条形图在Y轴数据坐标中的楼层水平。

实际楼层水平将受到Y轴最小值和最大值的限制。默认为零。

Access functions:
property multiSeriesUniformᅟ: bool

此属性表示即使显示多个系列,是否将条形图按比例缩放为单个系列条形图。

如果设置为truebar spacing将仅正确应用于X轴。默认预设为false

Access functions:
property primarySeriesᅟ: QBar3DSeries

此属性保存图表的主要系列。

series设置为图表的主要系列。当轴标签未明确设置时,主要系列确定行和列轴标签。

如果指定的系列尚未添加到图表中,将其设置为主要系列也会隐式地将其添加到图表中。

如果主系列本身从图表中移除,此属性将重置为默认值。

如果 series 为空,此属性将重置为默认值。默认值为第一个添加的系列,如果未向图表添加任何系列,则为零。

Access functions:
property rowAxisᅟ: QCategory3DAxis

此属性保存附加到活动行的轴。

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

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

另请参阅

addAxis() releaseAxis()

Access functions:
property selectedSeriesᅟ: QBar3DSeries

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

如果selectionMode设置了SelectionMultiSeries标志,此属性将保存拥有所选柱形的系列。

Access functions:
property valueAxisᅟ: QValue3DAxis

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

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

另请参阅

addAxis() releaseAxis()

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

父对象QObject

使用可选的parent构建一个新的3D条形图。

addAxis(axis)
Parameters:

axisQAbstract3DAxis

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

addSeries(series)
Parameters:

seriesQBar3DSeries

series添加到图表中。一个图表可以包含多个系列,但只能有一组轴,因此所有系列的行和列必须匹配,以使可视化的数据有意义。如果图表有多个可见系列,只有在未明确设置轴标签的情况下,主要系列才会生成轴上的行或列标签。如果新添加的系列指定了选定的条形图,它将被突出显示,并且任何现有的选择将被清除。只有一个添加的系列可以有活动的选择。

axes()
Return type:

QAbstract3DAxis的列表

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

另请参阅

addAxis()

barSeriesMargin()
Return type:

QSizeF

另请参阅

setBarSeriesMargin()

属性 barSeriesMarginᅟ 的获取器。

barSeriesMarginChanged(margin)
Parameters:

边距QSizeF

属性 barSeriesMarginᅟ 的通知信号。

barSpacing()
Return type:

QSizeF

另请参阅

setBarSpacing()

属性 barSpacingᅟ 的获取器。

barSpacingChanged(spacing)
Parameters:

间距QSizeF

属性 barSpacingᅟ 的通知信号。

barSpacingRelativeChanged(relative)
Parameters:

relative – 布尔值

属性 barSpacingRelativeᅟ 的通知信号。

barThickness()
Return type:

浮点数

另请参阅

setBarThickness()

属性 barThicknessᅟ 的获取器。

barThicknessChanged(thicknessRatio)
Parameters:

thicknessRatio – 浮点数

属性 barThicknessᅟ 的通知信号。

columnAxis()
Return type:

QCategory3DAxis

另请参阅

setColumnAxis()

属性 columnAxisᅟ 的获取器。

columnAxisChanged(axis)
Parameters:

axisQCategory3DAxis

属性 columnAxisᅟ 的通知信号。

floorLevel()
Return type:

浮点数

另请参阅

setFloorLevel()

属性 floorLevelᅟ 的获取器。

floorLevelChanged(level)
Parameters:

level – 浮点数

属性 floorLevelᅟ 的通知信号。

insertSeries(index, series)
Parameters:

series插入到系列列表中的index位置。如果series已经被添加到列表中,它将被移动到新的index

注意

当将一个系列移动到一个新的index,该新索引位于旧索引之后时,列表中的新位置的计算方式就像该系列仍在旧索引中一样,因此最终索引实际上是index减一。

isBarSpacingRelative()
Return type:

布尔

属性 barSpacingRelativeᅟ 的获取器。

isMultiSeriesUniform()
Return type:

布尔

属性 multiSeriesUniformᅟ 的获取器。

multiSeriesUniformChanged(uniform)
Parameters:

uniform – 布尔值

属性 multiSeriesUniformᅟ 的通知信号。

primarySeries()
Return type:

QBar3DSeries

另请参阅

setPrimarySeries()

属性 primarySeriesᅟ 的获取器。

primarySeriesChanged(series)
Parameters:

seriesQBar3DSeries

属性 primarySeriesᅟ 的通知信号。

releaseAxis(axis)
Parameters:

axisQAbstract3DAxis

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

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

removeSeries(series)
Parameters:

seriesQBar3DSeries

从图表中移除series

另请参阅

hasSeries()

rowAxis()
Return type:

QCategory3DAxis

另请参阅

setRowAxis()

属性 rowAxisᅟ 的获取器。

rowAxisChanged(axis)
Parameters:

axisQCategory3DAxis

属性 rowAxisᅟ 的通知信号。

selectedSeries()
Return type:

QBar3DSeries

属性 selectedSeriesᅟ 的获取器。

selectedSeriesChanged(series)
Parameters:

seriesQBar3DSeries

属性 selectedSeriesᅟ 的通知信号。

seriesList()
Return type:

QBar3DSeries的列表

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

另请参阅

hasSeries()

setBarSeriesMargin(margin)
Parameters:

边距QSizeF

另请参阅

barSeriesMargin()

属性 barSeriesMarginᅟ 的设置器。

setBarSpacing(spacing)
Parameters:

间距QSizeF

另请参阅

barSpacing()

属性 barSpacingᅟ 的设置器。

setBarSpacingRelative(relative)
Parameters:

relative – 布尔值

另请参阅

isBarSpacingRelative()

属性 barSpacingRelativeᅟ 的设置器。

setBarThickness(thicknessRatio)
Parameters:

thicknessRatio – 浮点数

另请参阅

barThickness()

属性 barThicknessᅟ 的设置器。

setColumnAxis(axis)
Parameters:

axisQCategory3DAxis

另请参阅

columnAxis()

属性 columnAxisᅟ 的设置器。

setFloorLevel(level)
Parameters:

level – 浮点数

另请参阅

floorLevel()

属性 floorLevelᅟ 的设置器。

setMultiSeriesUniform(uniform)
Parameters:

uniform – 布尔值

另请参阅

isMultiSeriesUniform()

属性 multiSeriesUniformᅟ 的设置器。

setPrimarySeries(series)
Parameters:

seriesQBar3DSeries

另请参阅

primarySeries()

属性 primarySeriesᅟ 的设置器。

setRowAxis(axis)
Parameters:

axisQCategory3DAxis

另请参阅

rowAxis()

属性 rowAxisᅟ 的设置器。

setValueAxis(axis)
Parameters:

axisQValue3DAxis

另请参阅

valueAxis()

属性 valueAxisᅟ 的设置器。

valueAxis()
Return type:

QValue3DAxis

另请参阅

setValueAxis()

属性 valueAxisᅟ 的获取器。

valueAxisChanged(axis)
Parameters:

axisQValue3DAxis

属性 valueAxisᅟ 的通知信号。