Spec-Zone.ru › Qt 5.11

Класс 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
  • 85 открытых функций унаследовано от QWindow
  • 145 открытых функций унаследовано от QOpenGLFunctions
  • 34 открытых функций унаследовано от 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

Дополнительные унаследованные члены

  • 24 слоты унаследованы от QWindow
  • 1 слот унаследован от QObject
  • 1 открытая переменная унаследована от QWindow
  • 1 открытая переменная унаследована от QObject
  • 3 статических открытых членов унаследовано от QWindow
  • 10 статических открытых членов унаследовано от QObject
  • 18 защищённых функций унаследовано от QWindow
  • 9 защищённых функций унаследовано от QObject
  • 1 защищённый тип унаследован от QOpenGLFunctions
  • 2 защищённых переменных унаследовано от QObject
  • 2 защищённых переменных унаследовано от QSurface

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

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

Документация по свойствам

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/archives/qt-5.11/q3dscatter.html

Spec-Zone.ru

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