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++クラスの一部です。
プロパティ
- axisX : QValue3DAxis*
- axisY : QValue3DAxis*
- axisZ : QValue3DAxis*
- selectedSeries : QScatter3DSeries*
パブリック関数
| 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();
}そして、この数行のコードによって次のような結果が得られます:

シーンの回転やズームイン、アイテムの選択による位置の確認は可能ですが、この最小限のコード例にはそれ以外のインタラクションは含まれていません。詳細については、「Simple Scatter Graph」などの提供されている例を参照して理解を深めてください。
関連項目: 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*
このプロパティには、選択された系列、またはNULLが格納されます。
アクセス関数:
| QScatter3DSeries * | selectedSeries() const |
通知信号:
| void | selectedSeriesChanged(QScatter3DSeries *series) |
メンバ関数のドキュメント
[explicit] Q3DScatterWidgetItem::Q3DScatterWidgetItem(QObject *parent = nullptr)
オプションのparent を使用して、新しい3D散布図を作成します。
[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
このグラフに追加された系列のリストを返します。
Q3DGraphsWidgetItem::hasSeries()も参照してください 。
© 2026 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.