Spec-Zone.ru › Qt 5.9

Класс 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

Spec-Zone.ru

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