QBarDataProxy Class
QBarDataProxy 类是 3D 条形图的数据代理。更多内容...
| 头文件: | #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 |
| 被继承类: | |
| 状态: | 已弃用 |
该类已弃用。我们强烈建议不要在新代码中使用它。
属性
- columnLabels : QStringList
- rowCount : int
- rowLabels : QStringList
- series : QBar3DSeries*
公共函数
| 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 : int
该属性存储数组中的行数。
访问函数:
| int | rowCount() const |
通知信号:
| void | rowCountChanged(int count) |
rowLabels : QStringList
该属性存储数组的可选行标签。
该数组中的索引与数据数组中的行索引相对应。如果列表的长度小于行数,则并非所有行都会获得标签。
访问函数:
| QStringList | rowLabels() const |
| void | setRowLabels(const QStringList &labels) |
通知信号:
| void | rowLabelsChanged() |
[read-only] series : QBar3DSeries*
该属性保存了此代理所关联的系列。
访问函数:
| QBar3DSeries * | series() const |
通知器信号:
| 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)
将新行row (标签为label )添加到数组的末尾。
返回所添加行索引。
int QBarDataProxy::addRows(const QBarDataArray &rows)
将新的rows 添加到数组的末尾。现有的行标签不受影响。
返回第一个添加行的索引。
int QBarDataProxy::addRows(const QBarDataArray &rows, const QStringList &labels)
将新的rows (其labels )添加到数组的末尾。
返回第一个添加行的索引。
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)
将新的 `rows `(其中包含 `labels `)插入到 `rowIndex` 中。如果 `rowIndex ` 等于数组大小,则这些行将追加到数组末尾。
const QBarDataItem *QBarDataProxy::itemAt(const QPoint &position) const
返回位于位置position 处的项的指针。position 的x值表示行,y值表示列。该项的有效性仅保证到下一次修改数据的调用为止。
const QBarDataItem *QBarDataProxy::itemAt(int rowIndex, int columnIndex) const
返回指向位于rowIndex 和columnIndex 所指定位置的项的指针。该指针仅在下次修改数据的调用之前保证有效。
[signal] void QBarDataProxy::itemChanged(int rowIndex, int columnIndex)
当位于rowIndex 和columnIndex 指定位置的项发生变化时,会发出此信号。如果在数组中修改了该项而未调用setItem(),则需要发出此信号以更新图形。
void QBarDataProxy::removeRows(int rowIndex, int removeCount, bool removeLabels = true)
删除从位置rowIndex 开始、数量为removeCount 的行。尝试删除数组末尾之后的行将不产生任何效果。如果removeLabels 为true ,则相应的行标签也会被删除。否则,行标签不受影响。
注意:如果 removeLabels 为false ,且被删除行之后还存在带标签的行,则行标签数组将与行数组不同步。
void QBarDataProxy::resetArray()
清除现有的数组以及行和列标签。
void QBarDataProxy::resetArray(QBarDataArray *newArray)
接管数组newArray 。如果新数组与原数组不同,则清空原数组。如果两个数组相同,则该函数仅触发arrayReset()信号。
传递一个空数组将删除旧数组并创建一个新的空数组。行和列标签不受影响。
void QBarDataProxy::resetArray(QBarDataArray *newArray, const QStringList &rowLabels, const QStringList &columnLabels)
接管数组newArray 的所有权。如果新数组与该数组不同,则清空现有数组。如果两个数组相同,则此函数仅触发arrayReset()信号。
传递一个空数组将删除旧数组并创建一个新的空数组。
rowLabels 和columnLabels 列表指定行和列的新标签。
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)
当从位置startIndex 开始,count 指定的行数发生变化时,将发出此信号。如果在未调用setRow()或setRows()的情况下修改了数组中的行,则需要发出此信号以更新图形。
[signal] void QBarDataProxy::rowsInserted(int startIndex, int count)
当在位置startIndex 插入由count 指定的行数时,会触发此信号。
如果未调用insertRow() 或insertRows() 便将行插入数组,则必须发出此信号以更新图形。
[signal] void QBarDataProxy::rowsRemoved(int startIndex, int count)
当从位置startIndex 开始移除count 指定的行数时,会发出此信号。
如果从数组末尾移除了行,则该索引即为当前数组大小。如果在未调用removeRows() 的情况下从数组中移除了行,则需要发出此信号以更新图形。
void QBarDataProxy::setItem(const QPoint &position, const QBarDataItem &item)
将位于坐标position 处的单个项目更改为项目item 。坐标position 中的x值表示行,y值表示列。
void QBarDataProxy::setItem(int rowIndex, int columnIndex, const QBarDataItem &item)
将位于rowIndex 和columnIndex 所指位置的单个项目更改为项目item 。
void QBarDataProxy::setRow(int rowIndex, QBarDataRow *row)
通过将位置为rowIndex 的行替换为由row 指定的新行,来修改现有行。新行可以与已存储在rowIndex 的现有行相同。现有行的标签不受影响。
void QBarDataProxy::setRow(int rowIndex, QBarDataRow *row, const QString &label)
通过将位置为rowIndex 的行替换为由row 指定的新行,来修改现有行。新行可以与已存储在rowIndex 的现有行相同。将行标签更改为label 。
void QBarDataProxy::setRows(int rowIndex, const QBarDataArray &rows)
通过将从位置rowIndex 开始的行替换为由rows 指定的新行,来修改现有行。现有行的标签不受影响。rows 数组中的行可以与已存储在rowIndex 中的现有行相同。
void QBarDataProxy::setRows(int rowIndex, const QBarDataArray &rows, const QStringList &labels)
通过将从位置rowIndex 开始的行替换为由rows 指定的新行,来修改现有行。行标签将更改为labels 。rows 数组中的行可以与已存储在rowIndex 中的现有行相同。
© 2026 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.