QBarDataProxy Class
QBarDataProxy 类是 3D 条形图的数据代理。更多内容...
| 头文件: | #include <QBarDataProxy> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Graphs) target_link_libraries(mytarget PRIVATE Qt6::Graphs) |
| qmake: | QT += graphs |
| 在 QML 中: | BarDataProxy |
| 继承自: | QAbstractDataProxy |
| 被继承类: |
- 所有成员列表(包括继承的成员)
- QBarDataProxy 是Qt Graphs 3D C++ 类库的一部分。
属性
公共函数
| QBarDataProxy(QObject *parent = nullptr) | |
| virtual | ~QBarDataProxy() override |
| qsizetype | addRow(QBarDataRow row) |
| qsizetype | addRow(QBarDataRow row, QString label) |
| qsizetype | addRows(QBarDataArray rows) |
| qsizetype | addRows(QBarDataArray rows, QStringList labels) |
| qsizetype | colCount() const |
| void | insertRow(qsizetype rowIndex, QBarDataRow row) |
| void | insertRow(qsizetype rowIndex, QBarDataRow row, QString label) |
| void | insertRows(qsizetype rowIndex, QBarDataArray rows) |
| void | insertRows(qsizetype rowIndex, QBarDataArray rows, QStringList labels) |
| const QBarDataItem & | itemAt(QPoint position) const |
| const QBarDataItem & | itemAt(qsizetype rowIndex, qsizetype columnIndex) const |
| void | removeRows(qsizetype rowIndex, qsizetype removeCount, QBarDataProxy::RemoveLabels removeLabels = RemoveLabels::No) |
| void | resetArray() |
| void | resetArray(QBarDataArray newArray) |
| void | resetArray(QBarDataArray newArray, QStringList rowLabels, QStringList columnLabels) |
| const QBarDataRow & | rowAt(qsizetype rowIndex) const |
| qsizetype | rowCount() const |
| QBar3DSeries * | series() const |
| void | setItem(QPoint position, QBarDataItem item) |
| void | setItem(qsizetype rowIndex, qsizetype columnIndex, QBarDataItem item) |
| void | setRow(qsizetype rowIndex, QBarDataRow row) |
| void | setRow(qsizetype rowIndex, QBarDataRow row, QString label) |
| void | setRows(qsizetype rowIndex, QBarDataArray rows) |
| void | setRows(qsizetype rowIndex, QBarDataArray rows, QStringList labels) |
信号
| void | arrayReset() |
| void | colCountChanged(qsizetype count) |
| void | itemChanged(qsizetype rowIndex, qsizetype columnIndex) |
| void | rowCountChanged(qsizetype count) |
| void | rowsAdded(qsizetype startIndex, qsizetype count) |
| void | rowsChanged(qsizetype startIndex, qsizetype count) |
| void | rowsInserted(qsizetype startIndex, qsizetype count) |
| void | rowsRemoved(qsizetype startIndex, qsizetype count) |
| void | seriesChanged(QBar3DSeries *series) |
相关的非成员
详细说明
条形数据代理负责处理数据行的添加、插入、修改和删除操作。
数据数组是QBarDataItem 实例的向量(行)列表。每行可以包含不同数量的项目,甚至可以为空。
QBarDataProxy 会接管所有传递给它的 QtGraphs::QBarDataRow 对象的所有权,无论这些对象是直接传递的,还是通过 QtGraphs::QBarDataArray 容器传递的。如果在将数组添加到代理后,使用条形图数据行指针直接修改数据,则必须发出相应的信号以更新图表。
QBarDataProxy 可选地跟踪行和列标签,QCategory3DAxis 可以利用这些标签来显示坐标轴标签。
行和列标签存储在与系列数据分开的数组中。代理中提供了行处理方法,并提供了不影响行标签的替代版本。这使得行标签可以与数据在数组中的位置相关,而非与数据本身相关。 由于系列同时包含数据和行、列标签,因此在对这些数据使用相关函数之前,必须先创建一个与代理关联的系列。
另请参阅 Qt Graphs 中的“3D 数据处理”。
属性文档
[read-only] colCount : qsizetype
该属性保存数组中的列数。
访问函数:
| qsizetype | colCount() const |
通知信号:
| void | colCountChanged(qsizetype count) |
[read-only] rowCount : qsizetype
该属性存储数组中的行数。
访问函数:
| qsizetype | rowCount() const |
通知信号:
| void | rowCountChanged(qsizetype count) |
[read-only] series : QBar3DSeries*
该属性存储了此代理所关联的系列。
访问函数:
| QBar3DSeries * | series() const |
通知器信号:
| void | seriesChanged(QBar3DSeries *series) |
成员函数文档
[explicit] QBarDataProxy::QBarDataProxy(QObject *parent = nullptr)
使用给定的parent 构建一个条形图数据代理。
[override virtual noexcept] QBarDataProxy::~QBarDataProxy()
删除条形图数据代理。
qsizetype QBarDataProxy::addRow(QBarDataRow row)
将新行row 添加到数组末尾。现有行标签不受影响。
返回所添加行对应的索引。
qsizetype QBarDataProxy::addRow(QBarDataRow row, QString label)
将新行row (标签为label )添加到数组的末尾。
返回所添加行索引。
qsizetype QBarDataProxy::addRows(QBarDataArray rows)
将新的rows 添加到数组的末尾。现有的行标签不受影响。
返回第一个添加行的索引。
qsizetype QBarDataProxy::addRows(QBarDataArray rows, QStringList labels)
将新的rows (其labels )添加到数组的末尾。
返回第一个添加行的索引。
[signal] void QBarDataProxy::arrayReset()
当数据数组被重置时,会发出此信号。如果在未调用resetArray()的情况下更改了整个数组的内容,则需要发出此信号以更新图形。
void QBarDataProxy::insertRow(qsizetype rowIndex, QBarDataRow row)
将新行row 插入到rowIndex 中。如果rowIndex 等于数组大小,则这些行将添加到数组末尾。现有的行标签不受影响。
注意: 如果插入行之后还有已标注的行,则调用此方法后,行标签数组将与行数组出现不一致。
void QBarDataProxy::insertRow(qsizetype rowIndex, QBarDataRow row, QString label)
将标签为label 的新行row 插入到rowIndex 中。如果rowIndex 等于数组大小,则行将被添加到数组的末尾。
void QBarDataProxy::insertRows(qsizetype rowIndex, QBarDataArray rows)
将新的rows 插入到rowIndex 中。如果rowIndex 等于数组大小,则这些行将被添加到数组末尾。现有的行标签不会受到影响。
注意: 如果被标记的行位于插入行的之后,则调用此方法后,行标签数组将与行数组不同步。
void QBarDataProxy::insertRows(qsizetype rowIndex, QBarDataArray rows, QStringList labels)
将包含labels 的新rows 插入到rowIndex 中。如果rowIndex 等于数组大小,则将这些行追加到数组末尾。
const QBarDataItem &QBarDataProxy::itemAt(QPoint position) const
返回位于位置 `position` 处的项的引用。position 的 x 值表示行,y 值表示列。该项的有效性仅保证到下一次修改数据的调用为止。
const QBarDataItem &QBarDataProxy::itemAt(qsizetype rowIndex, qsizetype columnIndex) const
返回指向位于rowIndex 和columnIndex 所指定位置的项的引用。该引用仅在下次修改数据的调用发生之前保证有效。
[signal] void QBarDataProxy::itemChanged(qsizetype rowIndex, qsizetype columnIndex)
当位于rowIndex 和columnIndex 指定位置的项目发生变化时,将触发此信号。如果在数组中修改了该项目而未调用setItem(),则需要触发此信号以更新图形。
void QBarDataProxy::removeRows(qsizetype rowIndex, qsizetype removeCount, QBarDataProxy::RemoveLabels removeLabels = RemoveLabels::No)
删除从位置rowIndex 开始、数量为removeCount 的行。尝试删除超出数组末尾的行不会产生任何效果。如果removeLabels 为true ,则相应的行标签也会被删除。否则,行标签不受影响。
注意:如果 removeLabels 为false ,且被删除行之后还存在带标签的行,则行标签数组将与行数组出现不一致。
void QBarDataProxy::resetArray()
清除现有的数组以及行和列标签。
void QBarDataProxy::resetArray(QBarDataArray newArray)
接管数组newArray 。如果新数组与原数组不同,则清空原数组。如果两个数组相同,则该函数仅触发arrayReset()信号。
传递一个空数组将删除旧数组并创建一个新的空数组。行和列标签不受影响。
void QBarDataProxy::resetArray(QBarDataArray newArray, QStringList rowLabels, QStringList columnLabels)
接管数组newArray 的所有权。如果新数组与原数组不同,则清空原数组。如果两个数组相同,则该函数仅触发arrayReset()信号。
传递一个空数组将删除旧数组并创建一个新的空数组。
rowLabels 和columnLabels 列表分别指定行和列的新标签。
const QBarDataRow &QBarDataProxy::rowAt(qsizetype rowIndex) const
返回位于位置rowIndex 处的行引用。该引用仅在下次修改数据的调用之前保证有效。
[signal] void QBarDataProxy::rowsAdded(qsizetype startIndex, qsizetype count)
当从位置startIndex 开始,向数组中添加由 `count ` 指定的行数时,将触发此信号。如果未调用 `addRow()` 或 `addRows()` 便向数组中添加行,则需要触发此信号以更新图形。
[signal] void QBarDataProxy::rowsChanged(qsizetype startIndex, qsizetype count)
当由count 指定的行数发生变化时(从startIndex 的位置开始),将发出此信号。如果在未调用setRow()或setRows()的情况下修改了数组中的行,则需要发出此信号以更新图形。
[signal] void QBarDataProxy::rowsInserted(qsizetype startIndex, qsizetype count)
当在位置startIndex 插入由count 指定的行数时,会触发此信号。
如果未调用insertRow() 或insertRows() 便将行插入数组,则需要发出此信号以更新图形。
[signal] void QBarDataProxy::rowsRemoved(qsizetype startIndex, qsizetype count)
当从startIndex 位置开始移除由count 指定的行数时,将触发此信号。
如果从数组末尾移除了行,则该索引即为当前数组大小。如果在未调用 `removeRows()` 的情况下从数组中移除了行,则需要发出此信号以更新图形。
void QBarDataProxy::setItem(QPoint position, QBarDataItem item)
将位于坐标position 处的单个项目更改为项目item 。坐标position 中的x值表示行,y值表示列。
void QBarDataProxy::setItem(qsizetype rowIndex, qsizetype columnIndex, QBarDataItem item)
将位于rowIndex 和columnIndex 所指定位置的单个项目更改为项目item 。
void QBarDataProxy::setRow(qsizetype rowIndex, QBarDataRow row)
通过将位置为rowIndex 的行替换为由row 指定的新行,来修改现有行。新行可以与已存储在rowIndex 的现有行相同。现有行的标签不受影响。
void QBarDataProxy::setRow(qsizetype rowIndex, QBarDataRow row, QString label)
通过将位置为rowIndex 的行替换为由row 指定的新行,来修改现有行。新行可以与已存储在rowIndex 的现有行相同。将行标签更改为label 。
void QBarDataProxy::setRows(qsizetype rowIndex, QBarDataArray rows)
通过将从位置rowIndex 开始的行替换为由rows 指定的新行,来修改现有行。现有行的标签不受影响。rows 数组中的行可以与已存储在rowIndex 中的现有行相同。
void QBarDataProxy::setRows(qsizetype rowIndex, QBarDataArray rows, 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.