Класс 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 = nullptr, QWindow *parent = 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
- 82 открытых функции унаследовано от QWindow
- 145 открытых функции унаследовано от QOpenGLFunctions
- 31 открытых функция унаследовано от 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
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 1 статический открытый член унаследован от QWindow
- 9 статических открытых членов унаследовано от QObject
Дополнительные унаследованные члены
- 24 открытых слота унаследовано от QWindow
- 1 открытый слот унаследовано от 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();
} И вот что производят эти несколько строк кода:
Сцена может быть повернута, приближена, и элемент может быть выбран для просмотра его координат, но никакие другие взаимодействия не включены в этот минимальный пример кода. Вы можете узнать больше, ознакомившись с примерами, предоставленными, например, с Scatter Example.
См. также Q3DBars, Q3DSurface и Qt Data Visualization C++ Классы.
END_OF_DOCUMENT_MARKERДокументация по свойствам
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 = nullptr, QWindow *parent = 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.12/q3dscatter.html