Spec-Zone.ru › Qt 5.14

Класс 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 добавить ось(QValue3DAxis *axis)
void добавить ряд(QScatter3DSeries *series)
QList<QValue3DAxis *> оси() const
QValue3DAxis * ось X() const
QValue3DAxis * ось Y() const
QValue3DAxis * ось Z() const
void освободить ось(QValue3DAxis *axis)
void удалить ряд(QScatter3DSeries *series)
QScatter3DSeries * выбранный ряд() const
QList<QScatter3DSeries *> список рядов() const
void установить ось X(QValue3DAxis *axis)
void установить ось Y(QValue3DAxis *axis)
void установить ось Z(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.14/q3dscatter.html

Spec-Zone.ru

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