Spec-Zone.ru › Qt 5.13

Класс Q3DScatter

Класс Q3DScatter предоставляет методы для визуализации 3D точечных графиков. Подробнее...

Заголовок: #include <Q3DScatter>
С момента: QtDataVisualization 1.0
Наследует: QAbstract3DGraph

Этот класс был представлен в QtDataVisualization 1.0.

  • Список всех членов, включая унаследованные

Свойства

  • axisX : QValue3DAxis*
  • axisY : QValue3DAxis*
  • axisZ : QValue3DAxis*
  • selectedSeries : QScatter3DSeries* const

Открытые функции

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)

Сигналы

void axisXChanged(QValue3DAxis *axis)
void axisYChanged(QValue3DAxis *axis)
void axisZChanged(QValue3DAxis *axis)
void selectedSeriesChanged(QScatter3DSeries *series)

Подробное описание

Этот класс позволяет разработчикам визуализировать точечные графики в 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 = nullptr, QWindow *parent = nullptr)

Конструирует новый 3D точечный график с необязательным родительским окном parent и форматированием поверхности format.

[virtual] Q3DScatter::~Q3DScatter()

Уничтожает 3D точечный график.

void Q3DScatter::addAxis(QValue3DAxis *axis)

Добавляет axis к графику. Оси, добавленные с помощью addAxis, еще не используются, addAxis просто используется для передачи владения axis графику. axis не должен быть нулевым или добавленным к другому графику.

См. также 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.13/q3dscatter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API