Класс Q3DScatter
Класс Q3DScatter предоставляет методы для отрисовки 3D-диаграмм рассеяния. Подробнее...
| Заголовок: | #include <Q3DScatter> |
| С версии: | QtDataVisualization 1.0 |
| Наследуется от: | QAbstract3DGraph |
Свойства
- axisX : QValue3DAxis *
- axisY : QValue3DAxis *
- axisZ : QValue3DAxis *
- selectedSeries : QScatter3DSeries * const
- 19 свойств унаследовано от QAbstract3DGraph
- 16 свойств унаследовано от QWindow
- 1 свойство унаследовано от QObject
Открытые функции
| Q3DScatter(const QSurfaceFormat *format = Q_NULLPTR, QWindow *parent = Q_NULLPTR) | |
| virtual | ~Q3DScatter() |
| void | addAxis(QValue3DAxis *axis) |
| void | addSeries(QScatter3DSeries *series) |
| QList<QValue3DAxis *> | axes() const |
| QValue3DAxis * | axisX() const |
| QValue3DAxis * | axisY() const |
| QValue3DAxis * | axisZ() const |
| void | releaseAxis(QValue3DAxis *axis) |
| void | removeSeries(QScatter3DSeries *series) |
| QScatter3DSeries * | selectedSeries() const |
| QList<QScatter3DSeries *> | seriesList() const |
| void | setAxisX(QValue3DAxis *axis) |
| void | setAxisY(QValue3DAxis *axis) |
| void | setAxisZ(QValue3DAxis *axis) |
- 54 открытых функций унаследовано от QAbstract3DGraph
- 80 открытых функций унаследовано от QWindow
- 145 открытых функций унаследовано от QOpenGLFunctions
- 32 открытых функций унаследовано от QObject
- 6 открытых функций унаследовано от QSurface
Сигналы
| void | axisXChanged(QValue3DAxis *axis) |
| void | axisYChanged(QValue3DAxis *axis) |
| void | axisZChanged(QValue3DAxis *axis) |
| void | selectedSeriesChanged(QScatter3DSeries *series) |
- 18 сигналов унаследовано от QAbstract3DGraph
- 18 сигналов унаследовано от QWindow
- 2 сигнала унаследовано от QObject
Дополнительные унаследованные члены
- 22 открытых слота унаследовано от QWindow
- 1 открытый слот унаследовано от QObject
- 1 статический открытый член унаследовано от QWindow
- 11 статических открытых членов унаследовано от QObject
- 18 защищенных функций унаследовано от QWindow
- 9 защищенных функций унаследовано от QObject
Подробное описание
Класс Q3DScatter предоставляет методы для отрисовки 3D-диаграмм рассеяния.
Этот класс позволяет разработчикам отрисовывать диаграммы рассеяния в 3D и просматривать их, вращая сцену произвольно. Вращение выполняется удерживанием правой кнопки мыши и перемещением курсора. Масштабирование выполняется колесом мыши. Выбор, если он включен, выполняется левой кнопкой мыши. Сброс сцены до начальной точки обзора камеры выполняется щелчком по колесу мыши. На сенсорных устройствах вращение выполняется тапом и перемещением, выбор — тапом и удержанием, а масштабирование — с помощью пинцета.
Если для Q3DScatter явным образом не заданы оси, создаются временные по умолчанию оси без надписей. Эти оси по умолчанию можно изменить с помощью функций доступа к оси, но как только любая ось явно задается для ориентации, ось по умолчанию для этой ориентации уничтожается.
Q3DScatter поддерживает одновременный вывод более чем одной серии.
Как создать минимальную диаграмму Q3DScatter
Сначала создайте Q3DScatter. Поскольку в этом примере графика выполняется как окно верхнего уровня, нам нужно очистить флаг Qt::FramelessWindowHint, который устанавливается по умолчанию:
Q3DScatter scatter; scatter.setFlags(scatter.flags() ^ Qt::FramelessWindowHint);
Теперь Q3DScatter готов к приёму данных для рендеринга. Добавьте одну серию из 3 элементов QVector3D:
QScatter3DSeries *series = new QScatter3DSeries; QScatterDataArray data; data << QVector3D(0.5f, 0.5f, 0.5f) << QVector3D(-0.3f, -0.5f, -0.4f) << QVector3D(0.0f, -0.3f, 0.2f); series->dataProxy()->addItems(data); scatter.addSeries(series);
Наконец, необходимо установить его видимость:
scatter.show();
Полный код, необходимый для создания и отображения этой графики:
#include <QtDataVisualization>
using namespace QtDataVisualization;
int main(int argc, char **argv)
{
QGuiApplication app(argc, argv);
Q3DScatter scatter;
scatter.setFlags(scatter.flags() ^ Qt::FramelessWindowHint);
QScatter3DSeries *series = new QScatter3DSeries;
QScatterDataArray data;
data << QVector3D(0.5f, 0.5f, 0.5f) << QVector3D(-0.3f, -0.5f, -0.4f) << QVector3D(0.0f, -0.3f, 0.2f);
series->dataProxy()->addItems(data);
scatter.addSeries(series);
scatter.show();
return app.exec();
} И вот что эти несколько строк кода производят:
Сцену можно вращать, приближать и выбирать элемент, чтобы увидеть его позицию, но другие взаимодействия не включены в этот минимальный пример кода. Вы можете узнать больше, ознакомившись с примерами, такими как Пример диаграммы рассеяния.
См. также Q3DBars, Q3DSurface и Классы Qt Data Visualization C++.
Документация свойств
axisX : QValue3DAxis *
Это свойство содержит активную ось X.
Функции доступа:
| QValue3DAxis * | axisX() const |
| void | setAxisX(QValue3DAxis *axis) |
Сигнал уведомления:
| void | axisXChanged(QValue3DAxis *axis) |
axisY : QValue3DAxis *
Это свойство содержит активную ось Y.
Функции доступа:
| QValue3DAxis * | axisY() const |
| void | setAxisY(QValue3DAxis *axis) |
Сигнал уведомления:
| void | axisYChanged(QValue3DAxis *axis) |
axisZ : QValue3DAxis *
Это свойство содержит активную ось Z.
Функции доступа:
| QValue3DAxis * | axisZ() const |
| void | setAxisZ(QValue3DAxis *axis) |
Сигнал уведомления:
| void | axisZChanged(QValue3DAxis *axis) |
selectedSeries : QScatter3DSeries * const
Это свойство содержит выбранный ряд или null.
Функции доступа:
| QScatter3DSeries * | selectedSeries() const |
Сигнал уведомления:
| void | selectedSeriesChanged(QScatter3DSeries *series) |
Документация функций-членов
Q3DScatter::Q3DScatter(const QSurfaceFormat *format = Q_NULLPTR, QWindow *parent = Q_NULLPTR)
Создает новую 3D диаграмму рассеяния с необязательным окном parent и форматом поверхности format.
[virtual] Q3DScatter::~Q3DScatter()
Уничтожает 3D диаграмму рассеяния.
void Q3DScatter::addAxis(QValue3DAxis *axis)
Добавляет axis на график. Оси, добавленные с помощью addAxis, пока не используются, addAxis просто используется для передачи владения axis графику. axis не должен быть null или добавлен в другой график.
См. также releaseAxis(), setAxisX(), setAxisY() и setAxisZ().
void Q3DScatter::addSeries(QScatter3DSeries *series)
Добавляет series на график. График может содержать несколько рядов, но имеет только один набор осей. Если у недавно добавленного ряда указан выделенный элемент, он будет выделен, а любой существующий выбор будет очищен. Только один добавленный ряд может иметь активный выбор.
QList<QValue3DAxis *> Q3DScatter::axes() const
Возвращает список всех добавленных осей.
См. также addAxis().
QValue3DAxis *Q3DScatter::axisZ() const
Возвращает используемую ось Z.
Примечание: Функция-получатель для свойства axisZ.
См. также setAxisZ().
void Q3DScatter::releaseAxis(QValue3DAxis *axis)
Возвращает владение axis обратно вызывающей стороне, если оно добавлено на этот график. Если освобожденный axis используется, будет создана и активирована новая ось по умолчанию.
Если ось по умолчанию освобождается и добавляется обратно позже, она ведет себя как любая другая ось.
См. также addAxis(), setAxisX(), setAxisY() и setAxisZ().
void Q3DScatter::removeSeries(QScatter3DSeries *series)
Удаляет series с графика.
QList<QScatter3DSeries *> Q3DScatter::seriesList() const
Возвращает список рядов, добавленных на этот график.
void Q3DScatter::setAxisX(QValue3DAxis *axis)
Устанавливает axis как активную ось X. Неявно вызывает addAxis() для передачи владения осью этому графику.
Если axis равно null, создается временная ось по умолчанию без меток и с автоматически настраиваемым диапазоном. Эта временная ось уничтожается, если другая ось явно устанавливается для того же направления.
Примечание: Функция-установщик для свойства axisX.
См. также axisX(), addAxis() и releaseAxis().
void Q3DScatter::setAxisY(QValue3DAxis *axis)
Устанавливает axis как активную ось Y. Неявно вызывает addAxis() для передачи владения осью этому графику.
Если axis равно null, создается временная ось по умолчанию без меток и с автоматически настраиваемым диапазоном. Эта временная ось уничтожается, если другая ось явно устанавливается для того же направления.
Примечание: Функция-установщик для свойства axisY.
См. также axisY(), addAxis() и releaseAxis().
void Q3DScatter::setAxisZ(QValue3DAxis *axis)
Устанавливает axis как активную ось Z. Неявно вызывает addAxis() для передачи владения осью этому графику.
Если axis равно null, создается временная ось по умолчанию без меток и с автоматически настраиваемым диапазоном. Эта временная ось уничтожается, если другая ось явно устанавливается для того же направления.
Примечание: Функция-установщик для свойства axisZ.
См. также axisZ(), addAxis() и releaseAxis().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/q3dscatter.html