Q3DScatterWidgetItem Class
Q3DScatterWidgetItemクラスは、3D散布図をレンダリングするためのメソッドを提供します。さらに...
ヘッダー | #include <Q3DScatterWidgetItem> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS GraphsWidgets) target_link_libraries(mytarget PRIVATE Qt6::GraphsWidgets) |
qmake: | QT += graphswidgets |
継承: | Q3DGraphsWidgetItem |
- 継承メンバを含む全メンバのリスト
- Q3DScatterWidgetItemはQt Graphs C++ Classes for Widgetsの一部です。
プロパティ
- axisX : QValue3DAxis*
- axisY : QValue3DAxis*
- axisZ : QValue3DAxis*
- selectedSeries : QScatter3DSeries* const
パブリック機能
Q3DScatterWidgetItem(QObject *parent = nullptr) | |
virtual | ~Q3DScatterWidgetItem() override |
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散布図をレンダリングし、シーンを自由に回転させて見ることができる。回転はマウスの右ボタンを押しながらマウスを動かすことで行い、ズームはマウスホイールを使って行います。有効な場合、選択はマウスの左ボタンで行う。シーンをデフォルトのカメラビューにリセットするには、マウスホイールをクリックします。タッチデバイスでは、回転はタップ&移動、選択はタップ&ホールド、ズームはピンチ操作で行います。
軸がQ3DScatterWidgetItemに明示的に設定されていない場合、ラベルのない一時的なデフォルト軸が作成されます。これらのデフォルト軸は、軸アクセサを介して変更することができますが、いずれかの軸が方向に対して明示的に設定されるとすぐに、その方向のデフォルト軸は破棄されます。
Q3DScatterWidgetItemは同時に表示可能な複数のシリーズをサポートしています。
Q3DScatterWidgetItemは透明度をサポートしています。この機能により、スキャッターポイントの不透明度を調整し、部分的に透明にしたり、完全に透明にしたり、不透明にしたりすることができます。
最小のQ3DScatterWidgetItemグラフを構築する方法
まず、Q3DScatterWidgetItemを構築する。この例ではグラフをトップレベルウィンドウとして実行しているので、デフォルトで設定されているQt::FramelessWindowHint
フラグをクリアする必要がある:
QQuickWidget quickWidget; Q3DScatterWidgetItem scatter; scatter.setWidget(&quickWidget); scatter.widget()->setMinimumSize(QSize(256, 256));
これでQ3DScatterWidgetItemはレンダリングするデータを受け取る準備ができた。3つのQVector3D アイテムのシリーズを1つ追加する:
注: 新しいプロキシとシリーズの関係では、データはシリーズで保持される。したがって、プロキシがデータを追加、削除、編集できるようにするには、最初にシリーズを作成することが前提条件となります。
QScatter3DSeries series; QScatterDataArray data; data << QScatterDataItem(0.5f, 0.5f, 0.5f) << QScatterDataItem(-0.3f, -0.5f, -0.4f) << QScatterDataItem(0.0f, -0.3f, 0.2f); series.dataProxy()->addItems(data); scatter.addSeries(&series);
最後に、それを可視に設定する必要があります:
scatter.widget()->show();
このグラフの作成と表示に必要なコード一式は以下の通りである:
#include <QtGraphs> #include <QtGraphsWidgets/q3dscatterwidgetitem.h> #include <QtWidgets/qapplication.h> int main(int argc, char **argv) { QApplication app(argc, argv); QQuickWidget quickWidget; Q3DScatterWidgetItem scatter; scatter.setWidget(&quickWidget); scatter.widget()->setMinimumSize(QSize(256, 256)); QScatter3DSeries series; QScatterDataArray data; data << QScatterDataItem(0.5f, 0.5f, 0.5f) << QScatterDataItem(-0.3f, -0.5f, -0.4f) << QScatterDataItem(0.0f, -0.3f, 0.2f); series.dataProxy()->addItems(data); scatter.addSeries(&series); scatter.widget()->show(); return app.exec(); }
この数行のコードから、このようなグラフが作成される:
シーンを回転させたり、ズームインさせたり、アイテムを選択してその位置を表示させたりすることができるが、この最小限のコード例には、他のインタラクションは含まれていない。単純な散布図など、提供されているサンプルに慣れることで、より多くを学ぶことができる。
Q3DBarsWidgetItem,Q3DSurfaceWidgetItem,Qt Graphs C++ Classes for 3Dも参照してください 。
プロパティのドキュメント
axisX : QValue3DAxis*
このプロパティは、アクティブな X 軸を保持する。
axis をアクティブな x 軸として設定する。暗黙的にaddAxis() を呼び出して、軸の所有権をこのグラフに移します。
axis が NULL の場合、ラベルと自動調整範囲を持たない一時的なデフォルト軸が作成される。この一時的な軸は、他の軸が同じ向きに明示的に設定されると破棄される。
アクセス関数:
QValue3DAxis * | axisX() const |
void | setAxisX(QValue3DAxis *axis) |
通知シグナル:
void | axisXChanged(QValue3DAxis *axis) |
addAxis() およびreleaseAxis()も参照 。
axisY : QValue3DAxis*
このプロパティは、アクティブな Y 軸を保持する。
axis をアクティブな Y 軸として設定します。暗黙的にaddAxis() を呼び出して、軸の所有権をこのグラフに移します。
axis が NULL の場合、ラベルと自動調整範囲を持たない一時的なデフォルト軸が作成される。この一時的な軸は、他の軸が同じ向きに明示的に設定されると破棄される。
アクセス関数:
QValue3DAxis * | axisY() const |
void | setAxisY(QValue3DAxis *axis) |
通知シグナル:
void | axisYChanged(QValue3DAxis *axis) |
addAxis() およびreleaseAxis()も参照 。
axisZ : QValue3DAxis*
このプロパティは、アクティブな Z 軸を保持する。
axis をアクティブな Z 軸として設定します。暗黙的にaddAxis() を呼び出して、軸の所有権をこのグラフに移します。
axis が NULL の場合、ラベルと自動調整範囲を持たない一時的なデフォルト軸が作成される。この一時的な軸は、他の軸が同じ向きに明示的に設定されると破棄される。
アクセス関数:
QValue3DAxis * | axisZ() const |
void | setAxisZ(QValue3DAxis *axis) |
通知シグナル:
void | axisZChanged(QValue3DAxis *axis) |
addAxis() およびreleaseAxis()も参照 。
[read-only]
selectedSeries : QScatter3DSeries* const
このプロパティは、選択されたシリーズまたは NULL を保持する。
アクセス関数
QScatter3DSeries * | selectedSeries() const |
通知シグナル:
void | selectedSeriesChanged(QScatter3DSeries *series) |
メンバ関数ドキュメント
[explicit]
Q3DScatterWidgetItem::Q3DScatterWidgetItem(QObject *parent = nullptr)
新しい 3D 散布図を、オプションのparent で構築します。
[override virtual noexcept]
Q3DScatterWidgetItem::~Q3DScatterWidgetItem()
3D散布図を破棄します。
void Q3DScatterWidgetItem::addAxis(QValue3DAxis *axis)
グラフにaxis を追加する。addAxis によって追加された軸は、まだ使用されていません。addAxis は単に、axis の所有権をグラフに与えるために使用されます。axis が null であったり、他のグラフに追加されていたりしてはいけません。
releaseAxis(),setAxisX(),setAxisY(),setAxisZ()も参照のこと 。
void Q3DScatterWidgetItem::addSeries(QScatter3DSeries *series)
グラフにseries を追加する。グラフは複数の系列を含むことができるが、軸は1セットのみである。新しく追加された系列に選択項目が指定されている場合、その項目はハイライトされ、既存の選択項目はクリアされます。アクティブな選択項目を持つことができるのは、追加された1つの系列だけである。
Q3DGraphsWidgetItem::hasSeries()も参照 。
QList<QValue3DAxis *> Q3DScatterWidgetItem::axes() const
追加されたすべての軸のリストを返します。
addAxis()も参照してください 。
void Q3DScatterWidgetItem::releaseAxis(QValue3DAxis *axis)
このグラフに追加されている場合、axis の所有権を呼び出し元に戻す。解放されたaxis が使用中の場合、新しいデフォルト軸が作成され、アクティブに設定される。
既定の軸が解放され、後で追加された場合、他の軸と同じように動作します。
addAxis()、setAxisX()、setAxisY()、およびsetAxisZ()も参照して ください。
void Q3DScatterWidgetItem::removeSeries(QScatter3DSeries *series)
グラフからseries を削除する。
Q3DGraphsWidgetItem::hasSeries()も参照 。
QList<QScatter3DSeries *> Q3DScatterWidgetItem::seriesList() const
このグラフに追加された系列のリストを返す。
© 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.