Класс Q3DBars
Класс Q3DBars предоставляет методы для отрисовки 3D столбчатых диаграмм. Подробнее...
| Заголовок: | #include <Q3DBars> |
| С момента: | QtDataVisualization 1.0 |
| Наследует от: | QAbstract3DGraph |
Свойства
|
|
- 19 свойств унаследовано от QAbstract3DGraph
- 16 свойств унаследовано от QWindow
- 1 свойство унаследовано от QObject
Открытые функции
| Q3DBars(const QSurfaceFormat *format = nullptr, QWindow *parent = nullptr) | |
| virtual | ~Q3DBars() |
| void | addAxis(QAbstract3DAxis *axis) |
| void | addSeries(QBar3DSeries *series) |
| QList<QAbstract3DAxis *> | axes() const |
| QSizeF | barSpacing() const |
| float | barThickness() const |
| QCategory3DAxis * | columnAxis() const |
| float | floorLevel() const |
| void | insertSeries(int index, QBar3DSeries *series) |
| bool | isBarSpacingRelative() const |
| bool | isMultiSeriesUniform() const |
| QBar3DSeries * | primarySeries() const |
| void | releaseAxis(QAbstract3DAxis *axis) |
| void | removeSeries(QBar3DSeries *series) |
| QCategory3DAxis * | rowAxis() const |
| QBar3DSeries * | selectedSeries() const |
| QList<QBar3DSeries *> | seriesList() const |
| void | setBarSpacing(const QSizeF &spacing) |
| void | setBarSpacingRelative(bool relative) |
| void | setBarThickness(float thicknessRatio) |
| void | setColumnAxis(QCategory3DAxis *axis) |
| void | setFloorLevel(float level) |
| void | setMultiSeriesUniform(bool uniform) |
| void | setPrimarySeries(QBar3DSeries *series) |
| void | setRowAxis(QCategory3DAxis *axis) |
| void | setValueAxis(QValue3DAxis *axis) |
| QValue3DAxis * | valueAxis() const |
- 54 общедоступные функции, унаследованные от QAbstract3DGraph
- 85 общедоступные функции, унаследованные от QWindow
- 145 общедоступные функции, унаследованные от QOpenGLFunctions
- 34 общедоступные функции, унаследованные от QObject
- 6 общедоступные функции, унаследованные от QSurface
Сигналы
| void | barSpacingChanged(const QSizeF &spacing) |
| void | barSpacingRelativeChanged(bool relative) |
| void | barThicknessChanged(float thicknessRatio) |
| void | columnAxisChanged(QCategory3DAxis *axis) |
| void | floorLevelChanged(float level) |
| void | multiSeriesUniformChanged(bool uniform) |
| void | primarySeriesChanged(QBar3DSeries *series) |
| void | rowAxisChanged(QCategory3DAxis *axis) |
| void | selectedSeriesChanged(QBar3DSeries *series) |
| void | valueAxisChanged(QValue3DAxis *axis) |
- 18 сигналов, унаследованных от QAbstract3DGraph
- 18 сигналов, унаследованных от QWindow
- 2 сигналов, унаследованных от QObject
Дополнительные унаследованные члены
- 24 public slots, унаследованные от QWindow
- 1 public slot, унаследованный от QObject
- 1 public переменная, унаследованная от QWindow
- 1 public переменная, унаследованная от QObject
- 3 статических public членов, унаследованных от QWindow
- 10 статических public членов, унаследованных от QObject
- 18 protected функций, унаследованных от QWindow
- 9 protected функций, унаследованных от QObject
- 1 protected тип, унаследованный от QOpenGLFunctions
- 2 protected переменных, унаследованных от QObject
- 2 protected переменных, унаследованных от QSurface
Подробное описание
Класс Q3DBars предоставляет методы для визуализации 3D столбчатых диаграмм.
Этот класс позволяет разработчикам визуализировать столбчатые диаграммы в 3D формате и просматривать их, свободно вращая сцену. Вращение выполняется удерживанием правой кнопки мыши и перемещением курсора. Масштабирование выполняется колесиком мыши. Выбор, если включен, выполняется левой кнопкой мыши. Сцена может быть сброшена к исходному виду камеры, нажав колесиком мыши. На сенсорных устройствах вращение выполняется нажатием и перемещением, выбор — нажатием и удерживанием, а масштабирование — с помощью двух касаний.
Если оси не установлены явно для Q3DBars, создаются временные значения по умолчанию с пустыми метками. Эти оси по умолчанию могут быть изменены с помощью методов доступа к осям, но как только любая ось устанавливается явно для ориентации, ось по умолчанию для этой ориентации уничтожается.
Q3DBars поддерживает одновременное отображение более чем одного ряда данных. Не обязательно, чтобы все ряды имели одинаковое количество строк и столбцов. Метки строк и столбцов берутся из первого добавленного ряда, если не определены явно для осей строк и столбцов.
Как создать минимальную диаграмму Q3DBars
Сначала создайте экземпляр Q3DBars. Поскольку в этом примере диаграмма запускается как основное окно, нам необходимо очистить флаг Qt::FramelessWindowHint, который устанавливается по умолчанию:
Q3DBars bars; bars.setFlags(bars.flags() ^ Qt::FramelessWindowHint);
После создания Q3DBars, вы можете установить область данных, изменив диапазон на осях строк и столбцов. Это не обязательно, так как область данных по умолчанию отображает все данные в рядах. Если количество данных велико, обычно предпочтительно отображать только часть из них. В примере установим область данных для отображения первых пяти строк и столбцов:
bars.rowAxis()->setRange(0, 4); bars.columnAxis()->setRange(0, 4);
Теперь Q3DBars готов принять данные для визуализации. Создайте ряд с одной строкой из 5 значений:
QBar3DSeries *series = new QBar3DSeries; QBarDataRow *data = new QBarDataRow; *data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f; series->dataProxy()->addRow(data); bars.addSeries(series);
Примечание: Мы установили область данных 5x5, но добавляем только одну строку данных. Это нормально, остальные строки будут пустыми.
Наконец, вам необходимо сделать его видимым:
bars.show();
Полный код, необходимый для создания и отображения этой диаграммы:
#include <QtDataVisualization>
using namespace QtDataVisualization;
int main(int argc, char **argv)
{
QGuiApplication app(argc, argv);
Q3DBars bars;
bars.setFlags(bars.flags() ^ Qt::FramelessWindowHint);
bars.rowAxis()->setRange(0, 4);
bars.columnAxis()->setRange(0, 4);
QBar3DSeries *series = new QBar3DSeries;
QBarDataRow *data = new QBarDataRow;
*data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f;
series->dataProxy()->addRow(data);
bars.addSeries(series);
bars.show();
return app.exec();
} И вот что генерируют эти несколько строк кода:
Сцену можно вращать, приближать и выбирать столбец для просмотра его значения, но никакие другие взаимодействия не включены в этот минимальный пример кода. Вы можете узнать больше, ознакомившись с примерами, такими как Пример столбчатых диаграмм.
См. также Q3DScatter, Q3DSurface и Классы Qt Data Visualization C++.
END_OF_DOCUMENT_MARKERДокументация свойств
barSpacing : QSizeF
Расстояние между столбцами по осям X и Z.
По умолчанию установлено в (1.0, 1.0). Расстояние изменяется свойством barSpacingRelative.
Функции доступа:
| QSizeF | barSpacing() const |
| void | setBarSpacing(const QSizeF &spacing) |
Сигнал уведомления:
| void | barSpacingChanged(const QSizeF &spacing) |
См. также barSpacingRelative и multiSeriesUniform.
barSpacingRelative : bool
Это свойство определяет, является ли расстояние абсолютным или относительным к толщине столбца.
Если оно равно true, значение 0.0 означает, что столбцы расположены вплотную друг к другу, 1.0 означает, что между столбцами оставлено пространство, равное толщине одного столбца, и так далее. По умолчанию установлено значение true.
Функции доступа:
| bool | isBarSpacingRelative() const |
| void | setBarSpacingRelative(bool relative) |
Сигнал уведомления:
| void | barSpacingRelativeChanged(bool relative) |
barThickness : float
Это свойство содержит отношение толщины столбца по осям X и Z.
Значение 1.0 означает, что столбцы имеют одинаковую ширину и высоту, а 0.5 означает, что высота в два раза больше ширины. По умолчанию установлено значение 1.0.
Функции доступа:
| float | barThickness() const |
| void | setBarThickness(float thicknessRatio) |
Сигнал уведомления:
| void | barThicknessChanged(float thicknessRatio) |
columnAxis : QCategory3DAxis*
Это свойство содержит ось, прикреплённую к активному столбцу.
Функции доступа:
| QCategory3DAxis * | columnAxis() const |
| void | setColumnAxis(QCategory3DAxis *axis) |
Сигнал уведомления:
| void | columnAxisChanged(QCategory3DAxis *axis) |
floorLevel : float
Это свойство содержит уровень пола для столбчатой диаграммы в координатах данных оси Y.
Фактический уровень пола будет ограничен минимальным и максимальным значениями оси Y. По умолчанию равен нулю.
Функции доступа:
| float | floorLevel() const |
| void | setFloorLevel(float level) |
Сигнал уведомления:
| void | floorLevelChanged(float level) |
multiSeriesUniform : bool
Это свойство определяет, должны ли столбцы масштабироваться пропорционально столбцам одной серии, даже если отображается несколько серий.
Если установлено true, расстояние между столбцами barSpacing будет корректно применено только к оси X. По умолчанию установлено false.
Функции доступа:
| bool | isMultiSeriesUniform() const |
| void | setMultiSeriesUniform(bool uniform) |
Сигнал уведомления:
| void | multiSeriesUniformChanged(bool uniform) |
primarySeries : QBar3DSeries*
Это свойство содержит основную серию графика.
Функции доступа:
| QBar3DSeries * | primarySeries() const |
| void | setPrimarySeries(QBar3DSeries *series) |
Сигнал уведомления:
| void | primarySeriesChanged(QBar3DSeries *series) |
rowAxis : QCategory3DAxis*
Это свойство содержит ось, прикрепленную к активной строке.
Функции доступа:
| QCategory3DAxis * | rowAxis() const |
| void | setRowAxis(QCategory3DAxis *axis) |
Сигнал уведомления:
| void | rowAxisChanged(QCategory3DAxis *axis) |
selectedSeries : QBar3DSeries* const
Это свойство содержит выбранную серию или значение null.
Если флаг selectionMode имеет установленное значение SelectionMultiSeries, это свойство содержит серию, к которой принадлежит выбранный столбец.
Функции доступа:
| QBar3DSeries * | selectedSeries() const |
Сигнал уведомления:
| void | selectedSeriesChanged(QBar3DSeries *series) |
valueAxis : QValue3DAxis*
Устанавливает активную ось значений (ось Y) на axis. Неявно вызывает addAxis() для передачи владения axis этому графику.
Если axis равно null, создается временная ось по умолчанию без меток и с автоматически настраиваемым диапазоном. Эта временная ось уничтожается, если другая ось явно устанавливается для той же ориентации.
Функции доступа:
| QValue3DAxis * | valueAxis() const |
| void | setValueAxis(QValue3DAxis *axis) |
Сигнал уведомления:
| void | valueAxisChanged(QValue3DAxis *axis) |
См. также addAxis() и releaseAxis().
Документация по членам-функциям
Q3DBars::Q3DBars(const QSurfaceFormat *format = nullptr, QWindow *parent = nullptr)
Создает новую 3D столбчатую диаграмму с необязательным родительским окном parent и форматом поверхности format.
[virtual] Q3DBars::~Q3DBars()
Уничтожает 3D столбчатую диаграмму.
void Q3DBars::addAxis(QAbstract3DAxis *axis)
Добавляет axis к графику. Оси, добавленные через addAxis, пока не используются, addAxis просто используется для передачи владения axis графику. axis не должен быть null или добавлен к другому графику.
См. также releaseAxis(), setValueAxis(), setRowAxis() и setColumnAxis().
void Q3DBars::addSeries(QBar3DSeries *series)
Добавляет series на график. График может содержать несколько рядов, но только один набор осей, поэтому строки и столбцы всех рядов должны совпадать, чтобы визуализированные данные были осмысленными. Если на графике несколько видимых рядов, только основной ряд будет генерировать метки строк или столбцов на осях в тех случаях, когда метки не заданы явно для осей. Если только что добавленный ряд указал выделенный столбец, он будет выделен, а любое существующее выделение будет очищено. Только один добавленный ряд может иметь активное выделение.
/sa seriesList(), primarySeries
QList<QAbstract3DAxis *> Q3DBars::axes() const
Возвращает список всех добавленных осей.
См. также addAxis().
void Q3DBars::insertSeries(int index, QBar3DSeries *series)
Вставляет series в позицию index в списке рядов. Если series уже добавлен в список, он перемещается в новую index.
Примечание: При перемещении ряда в новую index, которая расположена после его старой индексации, новое положение в списке рассчитывается так, как если бы ряд всё ещё находился на его старой позиции, поэтому окончательная индекс фактически является index, уменьшенной на единицу.
См. также addSeries() и seriesList().
void Q3DBars::releaseAxis(QAbstract3DAxis *axis)
Возвращает владение axis обратно вызывающей стороне, если он добавлен на этот график. Если высвобождаемая axis используется, будет создана и активирована новая ось по умолчанию.
Если ось по умолчанию высвобождается и добавляется обратно позднее, она ведет себя как любая другая ось.
См. также addAxis(), setValueAxis(), setRowAxis() и setColumnAxis().
void Q3DBars::removeSeries(QBar3DSeries *series)
Удаляет series с графика.
QList<QBar3DSeries *> Q3DBars::seriesList() const
Возвращает список рядов, добавленных на этот график.
void Q3DBars::setColumnAxis(QCategory3DAxis *axis)
Устанавливает ось активного столбца на axis. Неявным образом вызывает addAxis() для передачи владения осью этому графику.
Если axis равно null, создается временная ось по умолчанию без меток. Эта временная ось уничтожается, если другая ось явно устанавливается для той же ориентации.
Примечание: Функция-сеттер для свойства columnAxis.
См. также columnAxis(), addAxis() и releaseAxis().
void Q3DBars::setPrimarySeries(QBar3DSeries *series)
Устанавливает series в качестве основного ряда графика. Основной ряд определяет метки осей строк и столбцов, когда метки не заданы явно для осей.
Если указанный ряд еще не добавлен на график, его установка в качестве основного ряда также неявным образом добавит его на график.
Если основной ряд удаляется с графика, это свойство сбрасывается к значению по умолчанию.
Если series равно null, это свойство сбрасывается к значению по умолчанию. По умолчанию устанавливается на первый добавленный ряд или на ноль, если ряды на графике отсутствуют.
Примечание: Функция-сеттер для свойства primarySeries.
См. также primarySeries().
void Q3DBars::setRowAxis(QCategory3DAxis *axis)
Устанавливает ось активной строки на axis. Неявным образом вызывает addAxis() для передачи владения осью этому графику.
Если axis равно null, создается временная ось по умолчанию без меток. Эта временная ось уничтожается, если другая ось явно устанавливается для той же ориентации.
Примечание: Функция-сеттер для свойства rowAxis.
См. также rowAxis(), addAxis() и releaseAxis().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/q3dbars.html