Q3DScatter Class
Q3DScatterクラスは、3D散布図を描画するためのメソッドを提供します。詳細...
Header: | #include <Q3DScatter> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS DataVisualization) target_link_libraries(mytarget PRIVATE Qt6::DataVisualization) |
qmake: | QT += datavisualization |
Since: | QtDataVisualization 1.0 |
Inherits: | 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 |
このプロパティは、選択された系列または NULL を保持します:
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()も参照してください 。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。