Spec-Zone.ru › Qt 5.15

Класс 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 график рассеяния с необязательным родительским окном и форматом поверхности 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.15/q3dscatter.html

Spec-Zone.ru

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