QBarDataProxy Class

QBarDataProxy 类是三维条形图的数据代理。更多

Header: #include <QBarDataProxy>
CMake: find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake: QT += datavisualization
QtDataVisualization 1.0
在 QML 中: BarDataProxy
继承于: QAbstractDataProxy
继承于:

QItemModelBarDataProxy

属性

公共功能

QBarDataProxy(QObject *parent = nullptr)
virtual ~QBarDataProxy()
int addRow(QBarDataRow *row)
int addRow(QBarDataRow *row, const QString &label)
int addRows(const QBarDataArray &rows)
int addRows(const QBarDataArray &rows, const QStringList &labels)
const QBarDataArray *array() const
QStringList columnLabels() const
void insertRow(int rowIndex, QBarDataRow *row)
void insertRow(int rowIndex, QBarDataRow *row, const QString &label)
void insertRows(int rowIndex, const QBarDataArray &rows)
void insertRows(int rowIndex, const QBarDataArray &rows, const QStringList &labels)
const QBarDataItem *itemAt(const QPoint &position) const
const QBarDataItem *itemAt(int rowIndex, int columnIndex) const
void removeRows(int rowIndex, int removeCount, bool removeLabels = true)
void resetArray()
void resetArray(QBarDataArray *newArray)
void resetArray(QBarDataArray *newArray, const QStringList &rowLabels, const QStringList &columnLabels)
const QBarDataRow *rowAt(int rowIndex) const
int rowCount() const
QStringList rowLabels() const
QBar3DSeries *series() const
void setColumnLabels(const QStringList &labels)
void setItem(const QPoint &position, const QBarDataItem &item)
void setItem(int rowIndex, int columnIndex, const QBarDataItem &item)
void setRow(int rowIndex, QBarDataRow *row)
void setRow(int rowIndex, QBarDataRow *row, const QString &label)
void setRowLabels(const QStringList &labels)
void setRows(int rowIndex, const QBarDataArray &rows)
void setRows(int rowIndex, const QBarDataArray &rows, const QStringList &labels)

信号

void arrayReset()
void columnLabelsChanged()
void itemChanged(int rowIndex, int columnIndex)
void rowCountChanged(int count)
void rowLabelsChanged()
void rowsAdded(int startIndex, int count)
void rowsChanged(int startIndex, int count)
void rowsInserted(int startIndex, int count)
void rowsRemoved(int startIndex, int count)
void seriesChanged(QBar3DSeries *series)

详细说明

条形数据代理可处理数据行的添加、插入、更改和删除。

数据数组是QBarDataItem 实例的向量(行)列表。每一行可以包含不同数量的项目,甚至可以为空。

QBarDataProxy 拥有传递给它的所有 QtDataVisualization::QBarDataRow 对象的所有权,无论是直接传递还是在 QtDataVisualization::QBarDataArray 容器中传递。如果在将数组添加到代理后,条形数据行指针被用于直接修改数据,则必须发出适当的信号以更新图形。

QBarDataProxy 可选择跟踪行和列标签,QCategory3DAxis ,以显示坐标轴标签。行和列标签存储在与数据分开的数组中,行操作方法提供了不影响行标签的替代版本。这使得行标签可以与数据在数组中的位置而非数据本身相关。

另请参阅 Qt Data Visualization 数据处理

属性文档

columnLabels : QStringList

此属性包含数组的可选列标签。

该数组中的索引与行中的列索引相匹配。如果列表比最长行短,则所有列都不会获得标签。

访问功能

QStringList columnLabels() const
void setColumnLabels(const QStringList &labels)

通知信号

void columnLabelsChanged()

[read-only] rowCount : const int

此属性保存数组中的行数。

访问功能:

int rowCount() const

通知信号

void rowCountChanged(int count)

rowLabels : QStringList

该属性用于保存数组的可选行标签。

该数组中的索引与数据数组中的行索引一致。如果列表短于行数,则所有行都不会获得标签。

访问功能

QStringList rowLabels() const
void setRowLabels(const QStringList &labels)

通知信号

void rowLabelsChanged()

[read-only] series : QBar3DSeries* const

此属性表示此代理所连接的系列。

访问功能:

QBar3DSeries *series() const

Notifier 信号:

void seriesChanged(QBar3DSeries *series)

成员函数文档

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

用给定的parent 构建条形数据代理。

[virtual noexcept] QBarDataProxy::~QBarDataProxy()

删除条形图数据代理。

int QBarDataProxy::addRow(QBarDataRow *row)

将新行row 添加到数组末尾。现有的行标签不受影响。

返回新增行的索引。

int QBarDataProxy::addRow(QBarDataRow *row, const QString &label)

在数组末尾添加标有label 的新行row

返回新增行的索引。

int QBarDataProxy::addRows(const QBarDataArray &rows)

将新的rows 添加到数组末尾。现有的行标签不受影响。

返回第一个添加行的索引。

int QBarDataProxy::addRows(const QBarDataArray &rows, const QStringList &labels)

将带有labels 的新rows 添加到数组末尾。

返回第一行的索引。

const QBarDataArray *QBarDataProxy::array() const

返回数据数组的指针。

[signal] void QBarDataProxy::arrayReset()

数据数组重置时会发出该信号。如果在未调用resetArray() 的情况下更改了整个数组的内容,则需要发出此信号来更新图形。

void QBarDataProxy::insertRow(int rowIndex, QBarDataRow *row)

将新行row 插入rowIndex 。如果rowIndex 等于数组大小,则行会被添加到数组末尾。现有的行标签不受影响。

注意: 如果在插入行之外还有标签行,则调用后行标签数组将与行数组不同步。

void QBarDataProxy::insertRow(int rowIndex, QBarDataRow *row, const QString &label)

将标有label 的新行row 插入rowIndex 。如果rowIndex 等于数组大小,则行被添加到数组末尾。

void QBarDataProxy::insertRows(int rowIndex, const QBarDataArray &rows)

将新的rows 插入rowIndex 。如果rowIndex 等于数组大小,则行会被添加到数组末尾。现有的行标签不受影响。

注意: 如果在插入的行之外还有标签行,则调用后行标签数组将与行数组不同步。

void QBarDataProxy::insertRows(int rowIndex, const QBarDataArray &rows, const QStringList &labels)

将新的rowslabels 插入rowIndex 。如果rowIndex 等于数组大小,则行被添加到数组末尾。

const QBarDataItem *QBarDataProxy::itemAt(const QPoint &position) const

返回位于position 位置的项目指针。position 的 x 值表示行,y 值表示列。在下一次调用修改数据之前,该项目保证有效。

const QBarDataItem *QBarDataProxy::itemAt(int rowIndex, int columnIndex) const

返回rowIndexcolumnIndex 指定位置上的项目指针。保证在下一次调用修改数据之前有效。

[signal] void QBarDataProxy::itemChanged(int rowIndex, int columnIndex)

rowIndexcolumnIndex 所指定位置上的项目发生变化时,将发出该信号。如果未调用setItem() 就更改了数组中的项目,则需要发出此信号来更新图形。

void QBarDataProxy::removeRows(int rowIndex, int removeCount, bool removeLabels = true)

rowIndex 位置开始,移除removeCount 指定的行数。试图删除超过数组末尾的行数不会有任何效果。如果removeLabelstrue ,则相应的行标签也会被移除。否则,行标签不受影响。

注意: 如果removeLabelsfalse ,则如果在移除的行之外还有标签行,行标签数组将与行数组不同步。

void QBarDataProxy::resetArray()

清除现有数组以及行和列标签。

void QBarDataProxy::resetArray(QBarDataArray *newArray)

获取数组newArray 的所有权。如果新数组与现有数组不同,则清除现有数组。如果数组相同,该函数只会触发arrayReset() 信号。

传递一个空数组会删除旧数组并创建一个新的空数组。行和列标签不受影响。

void QBarDataProxy::resetArray(QBarDataArray *newArray, const QStringList &rowLabels, const QStringList &columnLabels)

获取数组newArray 的所有权。如果新数组与现有数组不同,则清除现有数组。如果数组相同,该函数只会触发arrayReset() 信号。

传递一个空数组会删除旧数组并创建一个新的空数组。

rowLabelscolumnLabels 列表指定了行和列的新标签。

const QBarDataRow *QBarDataProxy::rowAt(int rowIndex) const

返回位于rowIndex 位置的行指针。在下一次调用修改数据之前,该指针保证有效。

[signal] void QBarDataProxy::rowsAdded(int startIndex, int count)

startIndex 位置开始添加count 指定的行数时,将发出该信号。如果在未调用addRow() 或addRows() 的情况下向数组添加行数,则需要发出此信号以更新图形。

[signal] void QBarDataProxy::rowsChanged(int startIndex, int count)

count 指定的行数从startIndex 位置开始发生变化时,将发出该信号。如果数组中的行数在未调用setRow() 或setRows() 的情况下发生变化,则需要发出此信号以更新图形。

[signal] void QBarDataProxy::rowsInserted(int startIndex, int count)

count 指定的行数被插入startIndex 的位置时,就会发出该信号。

如果在未调用insertRow() 或insertRows() 的情况下将行插入数组,则需要发出此信号以更新图形。

[signal] void QBarDataProxy::rowsRemoved(int startIndex, int count)

当从startIndex 位置开始移除count 指定的行数时,会发出该信号。

如果行是从数组末尾移除的,则索引为当前数组大小。如果在未调用removeRows() 的情况下从数组中移除行,则需要发出此信号以更新图形。

void QBarDataProxy::setItem(const QPoint &position, const QBarDataItem &item)

position 位置上的单个项目更改为项目itemposition 的 x 值表示行,y 值表示列。

void QBarDataProxy::setItem(int rowIndex, int columnIndex, const QBarDataItem &item)

rowIndexcolumnIndex 指定位置上的单个项目更改为项目item

void QBarDataProxy::setRow(int rowIndex, QBarDataRow *row)

更改现有记录,用row 指定的新记录替换rowIndex 位置的记录。新行可以与已存储在rowIndex 的现有行相同。现有的行标签不受影响。

void QBarDataProxy::setRow(int rowIndex, QBarDataRow *row, const QString &label)

更改现有记录,用row 指定的新记录替换rowIndex 位置的记录。新行可以与已存储在rowIndex 的现有行相同。将行标签更改为label

void QBarDataProxy::setRows(int rowIndex, const QBarDataArray &rows)

更改现有行,用rows 指定的新行替换从rowIndex 位置开始的行。现有的行标签不受影响。rows 数组中的行可以与已存储在rowIndex 的现有行相同。

void QBarDataProxy::setRows(int rowIndex, const QBarDataArray &rows, const QStringList &labels)

更改现有记录,用rows 指定的新记录替换从rowIndex 位置开始的记录。行标签更改为labelsrows 数组中的行可以与已存储在rowIndex 的现有行相同。

相关非会员

QBarDataArray

指向QBarDataRow 对象的指针列表。

QBarDataRow

QBarDataItem 对象列表。

© 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.