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 |
プロパティ
- 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はレンダリングするデータを受け取る準備ができた。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(); }
この数行のコードから、このようなものが生成される:
シーンを回転させたり、ズームインさせたり、アイテムを選択してその位置を表示させたりすることはできるが、この最小限のコード例には他のインタラクションは含まれていない。散布図など、提供されているサンプルに慣れることで、より多くを学ぶことができる。
Q3DBars 、Q3DSurface 、および 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 軸を保持する。
アクセス関数
ノーティファイアシグナル:
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.