Класс QSurfaceDataProxy
Класс QSurfaceDataProxy — это прокси-объект данных для графиков 3D-поверхностей. Подробнее...
| Заголовок: | #include <QSurfaceDataProxy> |
| С момента: | QtDataVisualization 1.0 |
| Инициализируется: | SurfaceDataProxy |
| Наследует от: | QAbstractDataProxy |
| Наследуется: |
Свойства
- columnCount : const int
- rowCount : const int
- series : QSurface3DSeries* const
- 1 свойство унаследовано от QAbstractDataProxy
- 1 свойство унаследовано от QObject
Открытые функции
| QSurfaceDataProxy(QObject *parent = nullptr) | |
| virtual | ~QSurfaceDataProxy() |
| int | addRow(QSurfaceDataRow *row) |
| int | addRows(const QSurfaceDataArray &rows) |
| const QSurfaceDataArray * | array() const |
| int | columnCount() const |
| void | insertRow(int rowIndex, QSurfaceDataRow *row) |
| void | insertRows(int rowIndex, const QSurfaceDataArray &rows) |
| const QSurfaceDataItem * | itemAt(int rowIndex, int columnIndex) const |
| const QSurfaceDataItem * | itemAt(const QPoint &position) const |
| void | removeRows(int rowIndex, int removeCount) |
| void | resetArray(QSurfaceDataArray *newArray) |
| int | rowCount() const |
| QSurface3DSeries * | series() const |
| void | setItem(int rowIndex, int columnIndex, const QSurfaceDataItem &item) |
| void | setItem(const QPoint &position, const QSurfaceDataItem &item) |
| void | setRow(int rowIndex, QSurfaceDataRow *row) |
| void | setRows(int rowIndex, const QSurfaceDataArray &rows) |
- 1 открытая функция унаследована от QAbstractDataProxy
- 34 открытых функции унаследовано от QObject
Сигналы
| void | arrayReset() |
| void | columnCountChanged(int count) |
| void | itemChanged(int rowIndex, int columnIndex) |
| void | rowCountChanged(int count) |
| 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(QSurface3DSeries *series) |
- 2 сигнала унаследованы от QObject
Связанные нечлены
| typedef | QSurfaceDataArray |
| typedef | QSurfaceDataRow |
Дополнительные унаследованные члены
- 1 открытый слот унаследован от QObject
- 1 открытая переменная унаследована от QObject
- 10 статических открытых членов унаследовано от QObject
- 9 защищенных функций унаследовано от QObject
- 2 защищенных переменных унаследовано от QObject
Подробное описание
Класс QSurfaceDataProxy — это прокси-объект данных для графиков 3D-поверхностей.
Прокси-объект данных поверхностей обрабатывает данные, связанные с поверхностью, в строках. Для этого он предоставляет два вспомогательных typedef: QtDataVisualization::QSurfaceDataArray и QtDataVisualization::QSurfaceDataRow. QSurfaceDataArray — это QList, который управляет строками. QSurfaceDataRow — это QVector, который содержит объекты QSurfaceDataItem. Дополнительную информацию о том, как передавать данные в прокси-объект, см. в примерах кода в документации Q3DSurface.
Все строки должны иметь одинаковое количество элементов.
QSurfaceDataProxy принимает на себя владение всеми объектами QSurfaceDataRow, переданными ему, как напрямую, так и в контейнере QSurfaceDataArray. Чтобы использовать указатели на строки данных поверхности для прямого изменения данных после добавления массива в прокси-объект, необходимо выпустить соответствующий сигнал для обновления графика.
Для создания осмысленной поверхности x-значение каждого последующего элемента во всех строках должно быть либо возрастающим, либо убывающим в течение всей строки. Аналогично, z-значение каждого последующего элемента во всех столбцах должно быть либо возрастающим, либо убывающим в течение всего столбца.
Примечание: В настоящее время полностью поддерживаются только поверхности с прямыми строками и столбцами. Любая строка с элементами, которые не имеют точно такое же z-значение, или любой столбец с элементами, которые не имеют точно такое же x-значение, могут быть неправильно обрезаны, если вся поверхность полностью не помещается в видимые диапазоны осей x или z.
Примечание: Поверхности с менее чем двумя строками или столбцами считаются недействительными поверхностями и не будут отображаться.
Примечание: В некоторых средах поверхности с большим количеством видимых вершин могут не отображаться, потому что они превышают количество вершин на отрисовку, поддерживаемое графическим драйвером. Это, в основном, проблема на 32-битных и OpenGL ES2 платформах.
См. также Обработка данных Qt Data Visualization.
Документация свойств
columnCount : const int
Это свойство содержит количество столбцов в массиве данных.
Функции доступа:
| int | columnCount() const |
Сигнал уведомления:
| void | columnCountChanged(int count) |
rowCount : const int
Это свойство содержит количество строк в массиве данных.
Функции доступа:
| int | rowCount() const |
Сигнал уведомления:
| void | rowCountChanged(int count) |
series : QSurface3DSeries* const
Это свойство содержит серию, к которой прикреплен этот прокси.
Функции доступа:
| QSurface3DSeries * | series() const |
Сигнал уведомления:
| void | seriesChanged(QSurface3DSeries *series) |
Документация по членам функций
QSurfaceDataProxy::QSurfaceDataProxy(QObject *parent = nullptr)
Создает QSurfaceDataProxy с заданным parent.
[virtual] QSurfaceDataProxy::~QSurfaceDataProxy()
Удаляет прокси данных поверхности.
int QSurfaceDataProxy::addRow(QSurfaceDataRow *row)
Добавляет новую строку row в конец массива. Новая строка должна иметь то же количество столбцов, что и строки в исходном массиве.
Возвращает индекс добавленной строки.
int QSurfaceDataProxy::addRows(const QSurfaceDataArray &rows)
Добавляет новые rows в конец массива. Новые строки должны иметь то же количество столбцов, что и строки в исходном массиве.
Возвращает индекс первой добавленной строки.
const QSurfaceDataArray *QSurfaceDataProxy::array() const
Возвращает указатель на массив данных.
[signal] void QSurfaceDataProxy::arrayReset()
Этот сигнал испускается при сбросе массива данных. Если содержимое всего массива изменено без вызова resetArray(), этот сигнал необходимо испустить для обновления графика.
void QSurfaceDataProxy::insertRow(int rowIndex, QSurfaceDataRow *row)
Вставляет новую строку row в позицию rowIndex. Если rowIndex равно размеру массива, строки добавляются в конец массива. Новая строка должна иметь то же количество столбцов, что и строки в исходном массиве.
void QSurfaceDataProxy::insertRows(int rowIndex, const QSurfaceDataArray &rows)
Вставляет новые rows в позицию rowIndex. Если rowIndex равно размеру массива, строки добавляются в конец массива. Новые rows должны иметь то же количество столбцов, что и строки в исходном массиве.
const QSurfaceDataItem *QSurfaceDataProxy::itemAt(int rowIndex, int columnIndex) const
Возвращает указатель на элемент в позиции, заданной rowIndex и columnIndex. Гарантируется, что он валиден только до следующего вызова, изменяющего данные.
const QSurfaceDataItem *QSurfaceDataProxy::itemAt(const QPoint &position) const
Возвращает указатель на элемент в позиции position. Значение x в position указывает строку, а значение y — столбец. Элемент гарантированно валиден только до следующего вызова, изменяющего данные.
[signal] void QSurfaceDataProxy::itemChanged(int rowIndex, int columnIndex)
Этот сигнал испускается, когда элемент в позиции, заданной rowIndex и columnIndex, изменяется. Если элемент изменен в массиве без вызова setItem(), этот сигнал необходимо испустить для обновления графика.
void QSurfaceDataProxy::removeRows(int rowIndex, int removeCount)
Удаляет количество строк, заданное removeCount, начиная с позиции rowIndex. Попытка удалить строки за пределами массива ничего не делает.
void QSurfaceDataProxy::resetArray(QSurfaceDataArray *newArray)
Принимает на себя владение массивом newArray. Очищает существующий массив, если новый массив отличается от него. Если массивы одинаковые, эта функция просто вызывает сигнал arrayReset().
Передача нулевого массива удаляет старый массив и создает новый пустой массив. Все строки в newArray должны иметь одинаковую длину.
[signal] void QSurfaceDataProxy::rowsAdded(int startIndex, int count)
Этот сигнал испускается, когда добавляется количество строк, заданное count, начиная с позиции startIndex. Если строки добавлены в массив без вызова addRow() или addRows(), этот сигнал необходимо испустить для обновления графика.
[signal] void QSurfaceDataProxy::rowsChanged(int startIndex, int count)
Этот сигнал испускается, когда изменяется количество строк, заданное count, начиная с позиции startIndex. Если строки изменены в массиве без вызова setRow() или setRows(), этот сигнал необходимо испустить для обновления графика.
[signal] void QSurfaceDataProxy::rowsInserted(int startIndex, int count)
Этот сигнал испускается, когда вставлено количество строк, заданное count, в позицию startIndex.
Если строки вставлены в массив без вызова insertRow() или insertRows(), этот сигнал необходимо испустить для обновления графика.
[signal] void QSurfaceDataProxy::rowsRemoved(int startIndex, int count)
Этот сигнал испускается, когда удаляется количество строк, заданное count, начиная с позиции startIndex.
Индекс — текущий размер массива, если строки были удалены с конца массива. Если строки удалены из массива без вызова removeRows(), этот сигнал необходимо испустить для обновления графика.
void QSurfaceDataProxy::setItem(int rowIndex, int columnIndex, const QSurfaceDataItem &item)
Изменяет один элемент в позиции, заданной rowIndex и columnIndex, на элемент item.
void QSurfaceDataProxy::setItem(const QPoint &position, const QSurfaceDataItem &item)
Изменяет один элемент в позиции position на элемент item. Значение x в position указывает строку, а значение y — столбец.
void QSurfaceDataProxy::setRow(int rowIndex, QSurfaceDataRow *row)
Изменяет существующую строку, заменив строку в позиции rowIndex новой строкой, заданной row. Новая строка может быть такой же, как существующая строка, уже хранящаяся в rowIndex. Новая строка должна иметь то же количество столбцов, что и строка, которую она заменяет.
void QSurfaceDataProxy::setRows(int rowIndex, const QSurfaceDataArray &rows)
Изменяет существующие строки, заменяя строки, начиная с позиции rowIndex, на новые строки, заданные параметром rows. Строки в массиве rows могут быть такими же, как и существующие строки, уже хранящиеся в позиции rowIndex. Новые строки должны иметь такое же количество столбцов, как и строки, которые они заменяют.
Связанные нечлены
typedef QSurfaceDataArray
Список указателей на объекты QSurfaceDataRow.
typedef QSurfaceDataRow
Вектор объектов QSurfaceDataItem.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qsurfacedataproxy.html