Q3DScatter Class

Q3DScatterクラスは、3D散布図を描画するためのメソッドを提供します。さらに...

ヘッダー #include <Q3DScatter>
CMake: find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake: QT += datavisualization
以来:QtDataVisualization 1.0
継承: QAbstract3DGraph

プロパティ

パブリック機能

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はレンダリングするデータを受け取る準備ができた。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);

最後に、visibleに設定する必要がある:

scatter.show();

このグラフの作成と表示に必要なコード一式は以下の通りである:

#include <QtDataVisualization>

int main(int argc, char **argv)
{
    qputenv("QSG_RHI_BACKEND", "opengl");
    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();
}

この数行のコードから、このようなものが生成される:

シーンを回転させたり、ズームインさせたり、アイテムを選択してその位置を表示させたりすることはできるが、この最小限のコード例には他のインタラクションは含まれていない。散布図など、提供されているサンプルに慣れることで、より多くを学ぶことができる。

Q3DBarsQ3DSurface 、および Qt Data Visualization C++ Classes.

プロパティのドキュメント

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)

[read-only] selectedSeries : QScatter3DSeries* const

このプロパティは、選択されたシリーズまたは NULL を保持する。

アクセス関数

QScatter3DSeries *selectedSeries() const

通知シグナル:

void selectedSeriesChanged(QScatter3DSeries *series)

メンバ関数ドキュメント

[explicit] Q3DScatter::Q3DScatter(const QSurfaceFormat *format = nullptr, QWindow *parent = nullptr)

オプションでparent ウィンドウと表面format を持つ新しい 3D 散布図グラフを構築する。

[virtual noexcept] Q3DScatter::~Q3DScatter()

3D散布図を破棄します。

void Q3DScatter::addAxis(QValue3DAxis *axis)

グラフにaxis を追加する。addAxis によって追加された軸は、まだ使用されていません。addAxis は単に、axis の所有権をグラフに与えるために使用されます。axis が null であったり、他のグラフに追加されていたりしてはいけません。

releaseAxis(),setAxisX(),setAxisY(),setAxisZ()も参照のこと

void Q3DScatter::addSeries(QScatter3DSeries *series)

グラフにseries を追加する。グラフは複数の系列を含むことができるが、軸は1セットのみである。新しく追加された系列に選択項目が指定されている場合、その項目はハイライトされ、既存の選択項目はクリアされます。アクティブな選択項目を持つことができるのは、追加された1つの系列だけである。

QAbstract3DGraph::hasSeries()も参照

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 を削除する。

QAbstract3DGraph::hasSeries()も参照

QList<QScatter3DSeries *> Q3DScatter::seriesList() const

このグラフに追加された系列のリストを返す。

QAbstract3DGraph::hasSeries()も参照

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()も参照して ください。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.