PySide6.QtGraphsWidgets.Q3DBarsWidgetItem¶
- class Q3DBarsWidgetItem¶
Q3DBarsWidgetItem
类提供了渲染3D柱状图的方法。更多…概要¶
属性¶
barSeriesMarginᅟ
- X和Z维度中系列列之间的边距。合理的值范围是[0,1)barSpacingᅟ
- X和Z维度上的条形间距barSpacingRelativeᅟ
- 间距是绝对的还是相对于条形的厚度barThicknessᅟ
- X和Z维度之间的条形厚度比例columnAxisᅟ
- 附加到活动列的轴floorLevelᅟ
- 柱状图在Y轴数据坐标中的基准水平multiSeriesUniformᅟ
- 即使显示多个系列,条形是否按比例缩放为单个系列条形primarySeriesᅟ
- 图表的主要系列rowAxisᅟ
- 附加到活动行的轴selectedSeriesᅟ
- 选定的系列或空值
方法¶
def
__init__()
def
addAxis()
def
addSeries()
def
axes()
def
barSpacing()
def
barThickness()
def
columnAxis()
def
floorLevel()
def
insertSeries()
def
primarySeries()
def
releaseAxis()
def
removeSeries()
def
rowAxis()
def
selectedSeries()
def
seriesList()
def
setBarSpacing()
def
setColumnAxis()
def
setFloorLevel()
def
setRowAxis()
def
setValueAxis()
def
valueAxis()
信号¶
注意
本文档可能包含从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())
这就是这几行代码产生的结果:
场景可以旋转、放大,并且可以选择一个条形图来查看其值,但在这个最小代码示例中没有包含其他交互。您可以通过熟悉提供的示例来了解更多信息,例如Simple Bar Graph。
注意
当使用
from __feature__ import true_property
时,属性可以直接使用,否则通过访问器函数使用。此属性表示在X和Z维度上系列列之间的边距。合理的值范围是[0,1)。
默认预设为
(0.0, 0.0)
。此属性允许显示不同系列的柱状图并排显示,但列之间留有空间。另请参阅
- Access functions:
此属性保存X和Z维度中的条形间距。
预设为
(1.0, 1.0)
默认值。间距受barSpacingRelative
属性影响。另请参阅
barSpacingRelative
multiSeriesUniform
barSeriesMargin
- Access functions:
- property barSpacingRelativeᅟ: bool¶
此属性决定间距是绝对的还是相对于条形的厚度。
如果它是
true
,0.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
为空,则会创建一个没有标签的临时默认轴。如果另一个轴被显式设置为相同的方向,则此临时轴将被销毁。另请参阅
- Access functions:
- property floorLevelᅟ: float¶
此属性保存条形图在Y轴数据坐标中的楼层水平。
实际楼层水平将受到Y轴最小值和最大值的限制。默认为零。
- Access functions:
- property multiSeriesUniformᅟ: bool¶
此属性表示即使显示多个系列,是否将条形图按比例缩放为单个系列条形图。
如果设置为
true
,bar spacing
将仅正确应用于X轴。默认预设为false
。- Access functions:
- property primarySeriesᅟ: QBar3DSeries¶
此属性保存图表的主要系列。
将
series
设置为图表的主要系列。当轴标签未明确设置时,主要系列确定行和列轴标签。如果指定的系列尚未添加到图表中,将其设置为主要系列也会隐式地将其添加到图表中。
如果主系列本身从图表中移除,此属性将重置为默认值。
如果
series
为空,此属性将重置为默认值。默认值为第一个添加的系列,如果未向图表添加任何系列,则为零。- Access functions:
- property rowAxisᅟ: QCategory3DAxis¶
此属性保存附加到活动行的轴。
将活动行的轴设置为
axis
。隐式调用addAxis()
以将轴的所有权转移到此图表。如果
axis
为空,则会创建一个没有标签的临时默认轴。如果另一个轴被显式设置为相同的方向,则此临时轴将被销毁。另请参阅
- Access functions:
- property selectedSeriesᅟ: QBar3DSeries¶
此属性保存选定的系列或空值。
如果selectionMode设置了
SelectionMultiSeries
标志,此属性将保存拥有所选柱形的系列。- Access functions:
- property valueAxisᅟ: QValue3DAxis¶
将活动值轴(Y轴)设置为
axis
。隐式调用addAxis()
以将axis
的所有权转移到此图表。如果
axis
为空,则会创建一个没有标签且自动调整范围的临时默认轴。如果显式设置了另一个轴到相同的方向,则此临时轴将被销毁。另请参阅
- Access functions:
使用可选的
parent
构建一个新的3D条形图。- addAxis(axis)¶
- Parameters:
axis –
QAbstract3DAxis
将
axis
添加到图表中。通过addAxis添加的轴尚未被使用,addAxis仅用于将axis
的所有权赋予图表。axis
不能为空或已添加到另一个图表中。- addSeries(series)¶
- Parameters:
series –
QBar3DSeries
将
series
添加到图表中。一个图表可以包含多个系列,但只能有一组轴,因此所有系列的行和列必须匹配,以使可视化的数据有意义。如果图表有多个可见系列,只有在未明确设置轴标签的情况下,主要系列才会生成轴上的行或列标签。如果新添加的系列指定了选定的条形图,它将被突出显示,并且任何现有的选择将被清除。只有一个添加的系列可以有活动的选择。- axes()¶
- Return type:
返回所有添加的轴的列表。
另请参阅
- barSeriesMargin()¶
- Return type:
另请参阅
属性
barSeriesMarginᅟ
的获取器。属性
barSeriesMarginᅟ
的通知信号。- barSpacing()¶
- Return type:
另请参阅
属性
barSpacingᅟ
的获取器。属性
barSpacingᅟ
的通知信号。- barSpacingRelativeChanged(relative)¶
- Parameters:
relative – 布尔值
属性
barSpacingRelativeᅟ
的通知信号。- barThickness()¶
- Return type:
浮点数
另请参阅
属性
barThicknessᅟ
的获取器。- barThicknessChanged(thicknessRatio)¶
- Parameters:
thicknessRatio – 浮点数
属性
barThicknessᅟ
的通知信号。- columnAxis()¶
- Return type:
另请参阅
属性
columnAxisᅟ
的获取器。- columnAxisChanged(axis)¶
- Parameters:
axis –
QCategory3DAxis
属性
columnAxisᅟ
的通知信号。- floorLevel()¶
- Return type:
浮点数
另请参阅
属性
floorLevelᅟ
的获取器。- floorLevelChanged(level)¶
- Parameters:
level – 浮点数
属性
floorLevelᅟ
的通知信号。- insertSeries(index, series)¶
- Parameters:
index – 整数
series –
QBar3DSeries
将
series
插入到系列列表中的index
位置。如果series
已经被添加到列表中,它将被移动到新的index
。注意
当将一个系列移动到一个新的
index
,该新索引位于旧索引之后时,列表中的新位置的计算方式就像该系列仍在旧索引中一样,因此最终索引实际上是index
减一。- isBarSpacingRelative()¶
- Return type:
布尔
属性
barSpacingRelativeᅟ
的获取器。- isMultiSeriesUniform()¶
- Return type:
布尔
属性
multiSeriesUniformᅟ
的获取器。- multiSeriesUniformChanged(uniform)¶
- Parameters:
uniform – 布尔值
属性
multiSeriesUniformᅟ
的通知信号。- primarySeries()¶
- Return type:
另请参阅
属性
primarySeriesᅟ
的获取器。- primarySeriesChanged(series)¶
- Parameters:
series –
QBar3DSeries
属性
primarySeriesᅟ
的通知信号。- releaseAxis(axis)¶
- Parameters:
axis –
QAbstract3DAxis
如果
axis
被添加到此图中,则将其所有权释放回调用者。如果释放的axis
正在使用中,将创建一个新的默认轴并设置为活动状态。如果默认轴被释放并稍后重新添加,它的行为将与其他任何轴相同。
- removeSeries(series)¶
- Parameters:
series –
QBar3DSeries
从图表中移除
series
。另请参阅
- rowAxis()¶
- Return type:
另请参阅
属性
rowAxisᅟ
的获取器。- rowAxisChanged(axis)¶
- Parameters:
axis –
QCategory3DAxis
属性
rowAxisᅟ
的通知信号。- selectedSeries()¶
- Return type:
属性
selectedSeriesᅟ
的获取器。- selectedSeriesChanged(series)¶
- Parameters:
series –
QBar3DSeries
属性
selectedSeriesᅟ
的通知信号。- seriesList()¶
- Return type:
QBar3DSeries的列表
返回添加到该图表的系列列表。
另请参阅
属性
barSeriesMarginᅟ
的设置器。属性
barSpacingᅟ
的设置器。- setBarSpacingRelative(relative)¶
- Parameters:
relative – 布尔值
属性
barSpacingRelativeᅟ
的设置器。- setBarThickness(thicknessRatio)¶
- Parameters:
thicknessRatio – 浮点数
另请参阅
属性
barThicknessᅟ
的设置器。- setColumnAxis(axis)¶
- Parameters:
axis –
QCategory3DAxis
另请参阅
属性
columnAxisᅟ
的设置器。- setFloorLevel(level)¶
- Parameters:
level – 浮点数
另请参阅
属性
floorLevelᅟ
的设置器。- setMultiSeriesUniform(uniform)¶
- Parameters:
uniform – 布尔值
属性
multiSeriesUniformᅟ
的设置器。- setPrimarySeries(series)¶
- Parameters:
series –
QBar3DSeries
另请参阅
属性
primarySeriesᅟ
的设置器。- setRowAxis(axis)¶
- Parameters:
axis –
QCategory3DAxis
另请参阅
属性
rowAxisᅟ
的设置器。- setValueAxis(axis)¶
- Parameters:
axis –
QValue3DAxis
另请参阅
属性
valueAxisᅟ
的设置器。- valueAxis()¶
- Return type:
另请参阅
属性
valueAxisᅟ
的获取器。- valueAxisChanged(axis)¶
- Parameters:
axis –
QValue3DAxis
属性
valueAxisᅟ
的通知信号。