QBarSeries Class

QBarSeries 类以条形图显示数据。更多

Header: #include <QBarSeries>
CMake: find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: QT += graphs
在 QML 中: BarSeries
继承: QAbstractSeries

公共类型

enum class BarsType { Groups, Stacked, StackedPercent }
enum class LabelsPosition { Center, InsideEnd, InsideBase, OutsideEnd }

属性

公共函数

QBarSeries(QObject *parent = nullptr)
bool append(QBarSet *set)
bool append(const QList<QBarSet *> &sets)
QBarSet *at(qsizetype index)
QQmlComponent *barDelegate() const
QList<QBarSet *> barSets() const
qreal barWidth() const
QBarSeries::BarsType barsType() const
QList<QColor> borderColors() const
void clear()
qsizetype count() const
qsizetype find(QBarSet *set) const
bool insert(qsizetype index, QBarSet *set)
qreal labelsAngle() const
QString labelsFormat() const
qreal labelsMargin() const
QBarSeries::LabelsPosition labelsPosition() const
int labelsPrecision() const
bool labelsVisible() const
bool remove(QBarSet *set)
bool remove(qsizetype index)
void removeMultiple(qsizetype index, qsizetype count)
bool replace(const QList<QBarSet *> &sets)
bool replace(QBarSet *oldValue, QBarSet *newValue)
void replace(qsizetype index, QBarSet *set)
QList<QColor> seriesColors() const
void setBarDelegate(QQmlComponent *newBarDelegate)
void setBarWidth(qreal width)
void setBarsType(QBarSeries::BarsType type)
void setBorderColors(const QList<QColor> &newBorderColors)
void setLabelsAngle(qreal angle)
void setLabelsFormat(const QString &format)
void setLabelsMargin(qreal margin)
void setLabelsPosition(QBarSeries::LabelsPosition position)
void setLabelsPrecision(int precision)
void setLabelsVisible(bool visible = true)
void setSeriesColors(const QList<QColor> &newSeriesColors)
bool take(QBarSet *set)

重新实现的公共函数

virtual QAbstractSeries::SeriesType type() const override

信号

void barDelegateChanged()
void barSetsChanged()
void barWidthChanged()
void barsTypeChanged(QBarSeries::BarsType type)
void barsetsAdded(const QList<QBarSet *> &sets)
void barsetsRemoved(const QList<QBarSet *> &sets)
void borderColorsChanged()
void countChanged()
void labelsAngleChanged(qreal angle)
void labelsFormatChanged(const QString &format)
void labelsMarginChanged(qreal margin)
void labelsPositionChanged(QBarSeries::LabelsPosition position)
void labelsPrecisionChanged(int precision)
void labelsVisibleChanged(bool visible)
void seriesColorsChanged()
void setValueAdded(qsizetype index, qsizetype count, QBarSet *barset)
void setValueChanged(qsizetype index, QBarSet *barset)
void setValueRemoved(qsizetype index, qsizetype count, QBarSet *barset)
void updatedBars()

详细说明

该类默认将数据绘制为按类别分组的条形图系列,每个条形图组的每个类别都有一个条形图添加到系列中。它还支持水平条形图和堆叠条形图分组。

条形系列需要GraphsView x 轴设置为BarCategoryAxis ,y 轴设置为ValueAxis

另请参阅 QBarSetQAbstractSeries

成员类型文档

enum class QBarSeries::BarsType

该枚举值描述条形图系列的类型:

常量描述
QBarSeries::BarsType::Groups0条形集按类别分组。
QBarSeries::BarsType::Stacked1条形集按类别堆叠在一起。
QBarSeries::BarsType::StackedPercent2条形图组按类别堆叠在一起。分段大小与分段值占堆叠中所有分段总值的百分比相对应。

enum class QBarSeries::LabelsPosition

该枚举值描述了数据值标签的位置:

常量描述
QBarSeries::LabelsPosition::Center0标签位于条形图中心。
QBarSeries::LabelsPosition::InsideEnd1标签位于条形图顶部内部。
QBarSeries::LabelsPosition::InsideBase2标签位于底部条形图内。
QBarSeries::LabelsPosition::OutsideEnd3标签位于顶部条形图外侧。

属性文档

barDelegate : QQmlComponent*

该属性包含一个自定义 QML 组件,用于将每个条形图可视化。会为每个条形图创建该组件的实例。如果未定义该组件,则会使用默认的矩形可视化条形图。

该组件的动态属性如下

类型名称描述
QColor条形图颜色条形图的填充颜色。该值来自QGraphsTheme ,如果QBarSet 覆盖了颜色,则来自QBarSet::color
QColor条形边框颜色条形图的边框颜色。该值来自QGraphsThemeQBarSet::borderColor (如果QBarSet 重载了该颜色)。
qreal条形边框宽度条形图边框的宽度。该值来自QGraphsThemeQBarSet::borderWidth (如果QBarSet 重载了宽度)。
qreal条形值条形图的值。该值来自QBarSet::values
QString条形标签条形图的标签。该值来自QBarSet::label
bool条形选中当条形图被选中时,此值为 true,即条形图索引在QBarSet::selectedBars 中。
intbarIndex条形图的索引,从 0 到条形图的数量 - 1。

要使用这些属性,请在自定义组件中添加定义名称的属性。例如"property color barColor""property real barValue"

访问功能:

QQmlComponent *barDelegate() const
void setBarDelegate(QQmlComponent *newBarDelegate)

通知信号:

void barDelegateChanged()

[read-only] barSets : QList<QBarSet *> const

该属性包含已添加到系列中的集合列表。

访问功能:

QList<QBarSet *> barSets() const

通知信号:

void barSetsChanged()

barWidth : qreal

此属性表示系列条形图的宽度。

宽度的单位是 x 轴的单位。条形图的最小宽度为零,负值视为零。将宽度设置为零意味着无论 x 轴的比例如何,屏幕上的条形图宽度都是一个像素。宽度大于零的条形图将使用 x 轴的比例进行缩放。

默认情况下,barWidth 为 0.5(条形图的宽度为可用宽度的 50%)。有效值范围从 0.0(0%)到 1.0(100%)。

注意: QBarSeries 一起使用时,该值指定的是一组条形图的宽度,而不是单个条形图的宽度。

访问功能:

qreal barWidth() const
void setBarWidth(qreal width)

通知信号:

void barWidthChanged()

另请参见 QBarSeries

barsType : BarsType

此属性用于保存条形图系列的类型。

访问功能:

QBarSeries::BarsType barsType() const
void setBarsType(QBarSeries::BarsType type)

通知信号:

void barsTypeChanged(QBarSeries::BarsType type)

borderColors : QList<QColor>

此属性包含用于系列中所有对象的边框颜色列表。

如果系列比颜色多,则颜色列表会收拢,并从列表中的第一种颜色重新开始。如果未设置此属性(默认),则将使用QGraphsTheme::borderColors 中的颜色。

访问功能

QList<QColor> borderColors() const
void setBorderColors(const QList<QColor> &newBorderColors)

通知信号:

void borderColorsChanged()

[read-only] count : const qsizetype

该属性用于保存条形图系列中的条形图组数。

访问函数:

qsizetype count() const[see note below]

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

通知信号:

void countChanged()

labelsAngle : qreal

该属性保存值标签的角度(单位:度)。

访问功能:

qreal labelsAngle() const
void setLabelsAngle(qreal angle)

通知信号:

void labelsAngleChanged(qreal angle)

labelsFormat : QString

该属性用于保存条形图系列中显示标签的格式。

QBarSeries 支持以下格式标记:

@value条形图的值

例如,以下格式标签的用法将产生显示值和单位(u)的标签:

series->setLabelsFormat("@value u");

默认情况下,标签显示的是条形图的值。对于百分比条形图系列,会在数值后添加%。标签显示在绘图区域,如果条形图彼此靠近,标签可能会重叠。

访问功能

QString labelsFormat() const
void setLabelsFormat(const QString &format)

通知信号:

void labelsFormatChanged(const QString &format)

另请参见 labelsVisible,labelsPosition, 和labelsPrecision

labelsMargin : qreal

该属性表示值标签的边距,单位为像素。

labelsPosition 设置为LabelsPosition.Center 以外的值时,将使用该边距。默认值为0

访问功能:

qreal labelsMargin() const
void setLabelsMargin(qreal margin)

通知信号:

void labelsMarginChanged(qreal margin)

labelsPosition : LabelsPosition

该属性用于保存值标签的位置。

访问功能:

QBarSeries::LabelsPosition labelsPosition() const
void setLabelsPosition(QBarSeries::LabelsPosition position)

Notifier 信号:

void labelsPositionChanged(QBarSeries::LabelsPosition position)

另请参阅 labelsVisiblelabelsFormat

labelsPrecision : int

该属性用于保存数值标签中显示的最大有效位数。

默认值为 6。

访问功能:

int labelsPrecision() const
void setLabelsPrecision(int precision)

通知信号:

void labelsPrecisionChanged(int precision)

labelsVisible : bool

该属性用于设置条形图系列中标签的可见性。默认标签可见性为false

访问功能:

bool labelsVisible() const
void setLabelsVisible(bool visible = true)

通知信号:

void labelsVisibleChanged(bool visible)

seriesColors : QList<QColor>

该属性包含用于系列中所有对象的基色列表。

如果系列比颜色多,则颜色列表会从列表中的第一种颜色重新开始。如果未设置此属性(默认),则将使用QGraphsTheme::seriesColors 中的颜色。

访问功能

QList<QColor> seriesColors() const
void setSeriesColors(const QList<QColor> &newSeriesColors)

Notifier 信号:

void seriesColorsChanged()

成员函数文档

[explicit] QBarSeries::QBarSeries(QObject *parent = nullptr)

构建一个空的条形图系列,该系列是QObjectparent 的子系列。

[invokable] bool QBarSeries::append(QBarSet *set)

set 指定的一组条形图添加到条形图系列并获得其所有权。如果数据集为空或已属于系列,则不会添加。如果追加成功,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

[invokable] bool QBarSeries::append(const QList<QBarSet *> &sets)

sets 指定的条形图组列表添加到条形图系列中,并取得图组的所有权。如果所有集合都已成功添加,则返回true 。如果其中任何数据集为空或之前已添加到系列中,则不会添加任何数据集,函数返回false 。如果任何数据集在列表中出现不止一次,则不会添加任何数据集,此函数返回false

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

[invokable] QBarSet *QBarSeries::at(qsizetype index)

读取在index 位置指定的BarSet 。如果未找到BarSet ,则返回 null。

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

QList<QBarSet *> QBarSeries::barSets() const

返回条形图系列中的条形图组列表。保留条形图组的所有权。

注: 属性 barSets 的获取函数。

qreal QBarSeries::barWidth() const

返回系列条形图的宽度。

注: 属性 barWidth 的获取函数。

另请参阅 setBarWidth().

[signal] void QBarSeries::barsetsAdded(const QList<QBarSet *> &sets)

sets 指定的条形集添加到系列中时,将发出该信号。

另请参阅 append() 和insert()。

[signal] void QBarSeries::barsetsRemoved(const QList<QBarSet *> &sets)

sets 指定的条形集从系列中移除时,将发出该信号。

另请参见 remove().

[invokable] void QBarSeries::clear()

从系列中移除并永久删除所有条形集。

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

[invokable] qsizetype QBarSeries::count() const

返回条形图系列中的条形图组数。

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

注: 属性计数的获取函数。

[invokable] qsizetype QBarSeries::find(QBarSet *set) const

根据set 的定义,返回找到的第一个BarSet 的索引。如果未找到BarSet ,则返回-1。

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

[invokable] bool QBarSeries::insert(qsizetype index, QBarSet *set)

index 指定的位置将set 指定的条形图集插入系列,并获得该图集的所有权。如果数据集为空或已属于序列,则不会被添加。如果插入成功,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

bool QBarSeries::labelsVisible() const

返回标签的可见性。

注: 属性 labelsVisible 的获取函数。

另请参阅 setLabelsVisible().

[signal] void QBarSeries::labelsVisibleChanged(bool visible)

当标签的可见性更改为visible 时,将发出该信号。

注: 属性labelsVisible 的通知信号。

另请参阅 labelsVisible() 和setLabelsVisible()。

[invokable] bool QBarSeries::remove(QBarSet *set)

从系列中删除set 指定的条形集,如果删除成功,则永久删除该条形集。如果条形集已删除,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

[invokable] bool QBarSeries::remove(qsizetype index)

删除index 位置上的BarSetBarSet 将被永久删除。

注: 可通过元对象系统和 QML 调用该函数。请参阅Q_INVOKABLE

[invokable] void QBarSeries::removeMultiple(qsizetype index, qsizetype count)

indexcount 的数列中删除多个 BarSets。BarSets 将被永久删除。

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

[invokable] bool QBarSeries::replace(const QList<QBarSet *> &sets)

sets 指定的 BarSets 替换BarSeries 中的整个BarSet 列表。所有原始 BarSets 将被永久删除。如果所有 BarSets 都被替换,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

[invokable] bool QBarSeries::replace(QBarSet *oldValue, QBarSet *newValue)

oldValue 指定的BarSet 替换为newValue 中的 。如果在系列中发现oldValue 中的BarSet ,将被永久删除。如果替换成功,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

[invokable] void QBarSeries::replace(qsizetype index, QBarSet *set)

set 替换index 中的BarSet 。原来的BarSet 将被永久删除。

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

void QBarSeries::setBarWidth(qreal width)

将系列条形图的宽度设置为width

注: 属性barWidth 的设置函数。

另请参阅 barWidth() 。

void QBarSeries::setLabelsVisible(bool visible = true)

将条形图系列中标签的可见性设置为visible

注: 属性labelsVisible 的设置函数。

另请参阅 labelsVisible() 。

[signal] void QBarSeries::setValueAdded(qsizetype index, qsizetype count, QBarSet *barset)

index 是系列中条形码的索引。添加值的编号表示countbarset 是指向已更改数据集的指针。

[signal] void QBarSeries::setValueChanged(qsizetype index, QBarSet *barset)

index 是系列中条形集的索引。barset 是指向已更改数据集的指针。

[signal] void QBarSeries::setValueRemoved(qsizetype index, qsizetype count, QBarSet *barset)

index 是系列中条形组的索引。删除值的编号表示countbarset 是指向已更改数据集的指针。

[invokable] bool QBarSeries::take(QBarSet *set)

从系列中删除一个set 。不会删除条形集对象。

注: 系列仍是条形集的父对象。您必须设置父对象才能获得完全所有权。

如果取值操作成功,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

[override virtual] QAbstractSeries::SeriesType QBarSeries::type() const

重新实现属性QAbstractSeries::type 的访问函数。

返回条形图系列。

[signal] void QBarSeries::updatedBars()

条形图更新时发出该信号。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.