Bars3DNode QML Type
3D棒グラフノード。詳細...
| Import Statement: | import QtGraphs |
| Inherits: |
- 継承されたメンバーを含むすべてのメンバーの一覧
- Bars3DNodeは、Qt Graphs の3D用QMLタイプの一部です。
プロパティ
- aspectRatio : real
- barSeriesMargin : size
- barSpacing : size
- barSpacingRelative : bool
- barThickness : real
- columnAxis : Category3DAxis
- customItemList : list<Custom3DItem>
- floorLevel : real
- gridLineType : Graphs3D.GridLineType
- horizontalAspectRatio : real
- labelMargin : real
- locale : locale
- margin : real
- multiSeriesUniform : bool
- optimizationHint : Graphs3D.OptimizationHint
- polar : bool
- primarySeries : Bar3DSeries
- queriedGraphPosition : vector3d
- radialLabelOffset : real
- rowAxis : Category3DAxis
- selectedElement : Graphs3D.ElementType
- selectedSeries : Bar3DSeries
- selectionMode : Graphs3D.SelectionMode
- seriesList : list<Bar3DSeries>
- theme : GraphsTheme
- valueAxis : ValueAxis3D
信号
- barSeriesMarginChanged(size margin)
- barSpacingChanged(size spacing)
- barSpacingRelativeChanged(bool relative)
- barThicknessChanged(real thicknessRatio)
- columnAxisChanged(Category3DAxis axis)
- floorLevelChanged(real level)
- multiSeriesUniformChanged(bool uniform)
- primarySeriesChanged(Bar3DSeries series)
- rowAxisChanged(Category3DAxis axis)
- selectedSeriesChanged(Bar3DSeries series)
- valueAxisChanged(ValueAxis3D axis)
方法
- qsizetype addCustomItem(Custom3DItem item)
- void addSeries(Bar3DSeries series)
- void clearSelection()
- void doPicking(QPoint point)
- void doRayPicking(QVector3D origin, QVector3D direction)
- bool hasSeries(Abstract3DSeries series)
- void insertSeries(int index, Bar3DSeries series)
- void releaseCustomItem(Custom3DItem item)
- void removeCustomItem(Custom3DItem item)
- void removeCustomItemAt(vector3d position)
- void removeCustomItems()
- void removeSeries(Bar3DSeries series)
- Abstract3DAxis selectedAxis()
- Custom3DItem selectedCustomItem()
- qsizetype selectedCustomItemIndex()
- int selectedLabelIndex()
詳細な説明
このタイプを使用すると、開発者はQt Quick を使用して棒グラフノードを3Dでレンダリングできます。
このタイプを使用するには、Qt Graphs モジュールをインポートする必要があります:
import QtGraphsその後、qmlファイル内でBars3DNodeを使用できるようになります:
import QtQuick
import QtGraphs
View3D {
width: 640
height: 480
Bars3DNode {
width: parent.width
height: parent.height
Bar3DSeries {
itemLabelFormat: "@colLabel, @rowLabel: @valueLabel"
ItemModelBarDataProxy {
itemModel: dataModel
// Mapping model roles to bar series rows, columns, and values.
rowRole: "year"
columnRole: "city"
valueRole: "expenses"
}
}
}
ListModel {
id: dataModel
ListElement{ year: "2022"; city: "Oulu"; expenses: "4200"; }
ListElement{ year: "2022"; city: "Rauma"; expenses: "2100"; }
ListElement{ year: "2022"; city: "Helsinki"; expenses: "7040"; }
ListElement{ year: "2022"; city: "Tampere"; expenses: "4330"; }
ListElement{ year: "2023"; city: "Oulu"; expenses: "3960"; }
ListElement{ year: "2023"; city: "Rauma"; expenses: "1990"; }
ListElement{ year: "2023"; city: "Helsinki"; expenses: "7230"; }
ListElement{ year: "2023"; city: "Tampere"; expenses: "4650"; }
}
}Bar3DSeries 、ItemModelBarDataProxy 、Scatter3DNode 、Surface3DNode 、およびQt Graphs の3D用C++クラスも参照してください 。
プロパティのドキュメント
aspectRatio : real
水平面上の最長軸とy軸との間のグラフの拡大縮小比率です。デフォルトは2.0 です。
注: Bars3D には影響しません 。
「horizontalAspectRatio」も参照してください 。
barSeriesMargin : size
X軸およびZ軸方向のシリーズ列間の余白。デフォルトでは(0.0, 0.0) に設定されています。適切な値は[0,1)の範囲内です。
barSpacing : size
X軸およびZ軸方向のバー間隔。
デフォルトでは(1.0, 1.0) にプリセットされています。間隔はbarSpacingRelative プロパティの影響を受けます。
barSpacingRelative : bool
間隔が絶対値か、それともバーの太さに対する相対値か。
true の場合、0.0 の値はバーが隣り合わせに配置されることを意味し、1.0 はバーの間にバー1本分の厚さ分のスペースが空くことを意味します。初期設定はtrue です。
barThickness : real
X方向とZ方向のバーの厚さの比率。値が1.0 の場合、バーの幅と奥行きが同じことを意味し、0.5 の場合、バーの奥行きが幅の2倍になることを意味します。
columnAxis : Category3DAxis
アクティブな列軸。
軸が指定されていない場合、ラベルのない一時的なデフォルトの軸が作成されます。この一時的な軸は、別の軸が明示的に同じ向きに設定されると破棄されます。
customItemList : list<Custom3DItem>
グラフに追加されたCustom3DItem 項目のリスト。グラフは、追加された項目の所有権を取得します。
floorLevel : real
Y軸のデータ座標における棒グラフの床レベル。
実際の下限値は、Y軸の最小値と最大値によって制限されます。デフォルトは0です。
gridLineType : Graphs3D.GridLineType
グリッド線の種類を「Graphs3D.GridLineType.Shader 」にするか、「Graphs3D.GridLineType.Geometry 」にするかを指定します。
この値はすべてのグリッド線に影響します。
「Graphs3D.GridLineType」も参照してください 。
horizontalAspectRatio : real
x軸とz軸のグラフスケールの比率です。0.0 を指定すると、軸の範囲に応じて自動的にスケール調整が行われます。デフォルトは0.0 です。
注: Bars3DNode には影響しません 。 は、barThickness およびbarSpacing プロパティを介して水平面上のスケーリングを処理します。また、極座標グラフではこのプロパティは無視されます。
関連項目: aspectRatio 、polar 、Bars3DNode::barThickness 、およびBars3DNode::barSpacing 。
labelMargin : real
このプロパティは、軸ラベルの配置における余白を指定します。
負の値を指定するとラベルはプロット領域内に配置され、正の値を指定するとプロット領域外に配置されます。値が負の場合、ラベルの自動回転は無効になります。デフォルトは0.1
「QAbstract3DAxis::labelAutoAngle」も参照してください 。
locale : locale
さまざまな数値ラベルの書式設定に使用されるロケールを設定します。デフォルトは「"C" 」ロケールです。
「Value3DAxis::labelFormat」も参照してください 。
margin : real
プロット可能なグラフ領域の端とグラフ背景の端の間に残すスペースに用いられる絶対値です。
マージンの値が負の場合、マージンは自動的に決定され、系列内の項目のサイズやグラフの種類に応じて変動することがあります。グラフのアスペクト比がデフォルト値から変更されていない場合、この値は y 軸の範囲に対する割合として解釈されます。デフォルトは `-1.0` です。
注: 散布図の余白を、自動的に決定された余白よりも小さく設定すると 、グラフの端にある散布図のデータ点がグラフの背景と重なってしまうことがあります。
注: 散布図 およびサーフェス図において 、マージンが軸ラベルのサイズに比べて小さい場合、隣接する軸の端のラベルとの重なりを避けるために、軸の端のラベルの位置が調整されます。
multiSeriesUniform : bool
複数の系列が表示されている場合でも、1つの系列の棒グラフの比率に基づいて他の棒グラフのスケールを調整するかどうかを指定します。true に設定すると、bar spacing はX軸に対してのみ正しく適用されます。デフォルトではfalse に設定されています。
optimizationHint : Graphs3D.OptimizationHint
レンダリングの最適化に、デフォルトモードとレガシーモードのどちらを使用するかを指定します。
デフォルトモードではインスタンス化レンダリングが使用され、ほとんどのシステムにおいて最高のパフォーマンスで全機能を利用できます。スタティックモードはグラフのレンダリングを最適化し、変化のない大規模なデータセットに最適です。動的なデータ変更やアイテムの回転を行う場合は処理速度が低下します。 選択操作は最適化されないため、大規模なデータセットで静的モードを使用することは推奨されません。レガシーモードでは、インスタンス化を行わずにグラフ内のすべてのアイテムを個別にレンダリングします。これは、デフォルトモードが機能しない場合、つまりターゲットシステムがインスタンス化をサポートしていない場合にのみ使用してください。デフォルトはDefault です。
注:一部の環境では 、静的最適化を使用した大規模なグラフがレンダリングされない場合があります。これは、すべてのアイテムが単一のドローコールを使用してレンダリングされるためであり、グラフィックスドライバによって1コールあたりの最大頂点数が異なるためです。この問題は主に32ビットおよびOpenGL ES2プラットフォームで発生します。 この問題を回避するには、頂点数の少ないアイテムメッシュを選択するか、ポイントメッシュを使用してください。
関連項目: Abstract3DSeries::mesh およびGraphs3D.OptimizationHint 。
polar : bool
true の場合、横軸が極座標軸に変更されます。x軸は角度軸となり、z軸は半径軸となります。棒グラフでは極座標モードは使用できません。
デフォルトは `false` です。
「radialLabelOffset」も参照してください 。
primarySeries : Bar3DSeries
グラフのプライマリ・シリーズです。軸のラベルが明示的に設定されていない場合、行軸および列軸のラベルを決定するために使用されます。
指定された系列がまだグラフに追加されていない場合、これをプライマリ系列として設定すると、暗黙的にグラフに追加されます。
プライマリ・シリーズ自体がグラフから削除された場合、このプロパティはデフォルト値にリセットされます。
シリーズが null の場合、このプロパティはデフォルト値にリセットされます。デフォルトは、最初に追加されたシリーズ、またはグラフにシリーズが追加されていない場合は 0 です。
queriedGraphPosition : vector3d [read-only]
この読み取り専用プロパティには、Scene3D::graphPositionQuery を使用してクエリされた、各軸に沿ったグラフ上の最新の位置値が含まれます。これらの値は、[-1, 1] の範囲に正規化されています。クエリされた位置がグラフの境界外にある場合、値は実際の位置を反映せず、代わりに[-1, 1] の範囲外の未定義の位置となります。クエリが行われるまでは、この値は未定義となります。
特定の画面位置に対応する唯一の正しい3D座標は存在しないため、一貫性を保つために、クエリは常にグラフを囲む見えないボックスの内側に対して行われます。
注:棒グラフでは 、グラフの底面レベルでのみ位置のクエリが可能であるため、棒グラフの y 値は常に 0 となり、有効なクエリはグラフの底面を含む画面位置でのみ実行できます。
Scene3D::graphPositionQueryも参照してください 。
radialLabelOffset : real
このプロパティは、放射状極座標軸の軸ラベルの正規化された水平オフセットを指定します。値「0.0 」は、ラベルを0度の角度軸グリッド線の隣に描画することを示します。値「1.0 」は、ラベルをグラフ背景の端にある通常の位置に描画することを示します。このプロパティは、polarプロパティの値が「false 」の場合、無視されます。デフォルトは「1.0 」です。
polarも参照してください 。
rowAxis : Category3DAxis
アクティブな行軸。
軸が指定されていない場合、ラベルのない一時的なデフォルトの軸が作成されます。この一時的な軸は、別の軸が明示的に同じ向きに設定された場合、破棄されます。
selectedElement : Graphs3D.ElementType [read-only]
グラフで選択されている要素。
このプロパティを使用すると、選択されている要素のタイプを問い合わせることができます。このタイプは、グラフ内で新たな選択が行われ、「selectedElementChanged 」信号が発信されるまで有効です。
このシグナルは、例えば「Axis Handling」の例で示されているように、カスタマイズされた入力処理を実装するために使用できます。
selectedLabelIndex()、selectedAxis()、selectedCustomItemIndex()、selectedCustomItem()、Bars3DNode::selectedSeries 、Scatter3DNode::selectedSeries 、Scene3D::selectionQueryPosition 、およびGraphs3D.ElementTypeも参照してください 。
selectedSeries : Bar3DSeries [read-only]
選択されたシリーズ、またはnull 。selectionMode にSelectionMultiSeries フラグが設定されている場合、このプロパティには、選択されたバーを所有するシリーズが格納されます。
selectionMode : Graphs3D.SelectionMode
グラフのアクティブな選択モード。graphs3d.selectionflag 列挙型の値のいずれかです。
seriesList : list<Bar3DSeries> [default]
グラフのシリーズ。デフォルトでは、このプロパティには空のリストが含まれます。シリーズを設定するには、addSeries() 関数を使用するか、グラフの子要素として定義してください。
theme : GraphsTheme
グラフのアクティブなテーマ。
GraphsThemeも参照してください 。
valueAxis : ValueAxis3D
アクティブな値軸。
軸が指定されていない場合、ラベルがなく、範囲が自動的に調整される一時的なデフォルトの軸が作成されます。この一時的な軸は、別の軸が明示的に同じ向きに設定された場合、破棄されます。
Signal ドキュメント
barSeriesMarginChanged(size margin)
このシグナルは、barSeriesMargin がmargin に変更されたときに発せられます。
注: 対応するハンドラは onBarSeriesMarginChanged です。
barSpacingChanged(size spacing)
このシグナルは、barSpacing がspacing に変更されたときに発生します。
注: 対応するハンドラは onBarSpacingChanged です。
barSpacingRelativeChanged(bool relative)
このシグナルは、barSpacingRelative がrelative に変更されたときに発せられます。
注: 対応するハンドラは onBarSpacingRelativeChanged です。
barThicknessChanged(real thicknessRatio)
このシグナルは、barThickness がthicknessRatio に変更されたときに発生します。
注: 対応するハンドラは onBarThicknessChanged です。
columnAxisChanged(Category3DAxis axis)
このシグナルは、columnAxis がaxis に変更されたときに発生します。
注: 対応するハンドラは onColumnAxisChanged です。
floorLevelChanged(real level)
このシグナルは、floorLevel がlevel に変更されたときに発生します。
注: 対応するハンドラは onFloorLevelChanged です。
multiSeriesUniformChanged(bool uniform)
このシグナルは、multiSeriesUniform がuniform に変更されたときに発生します。
注: 対応するハンドラは onMultiSeriesUniformChanged です。
primarySeriesChanged(Bar3DSeries series)
このシグナルは、primarySeries がseries に変更されたときに発生します。
注: 対応するハンドラは onPrimarySeriesChanged です。
rowAxisChanged(Category3DAxis axis)
このシグナルは、rowAxis がaxis に変更されたときに発せられます。
注: 対応するハンドラは onRowAxisChanged です。
selectedSeriesChanged(Bar3DSeries series)
このシグナルは、selectedSeries がseries に変更されたときに発生します。
注: 対応するハンドラは onSelectedSeriesChanged です。
valueAxisChanged(ValueAxis3D axis)
このシグナルは、valueAxis がaxis に切り替わったときに発生します。
注: 対応するハンドラは onValueAxisChanged です。
メソッドのドキュメント
qsizetype addCustomItem(Custom3DItem item)
Custom3DItem item をグラフに追加します。追加された項目の所有権はグラフが引き継ぎます。
追加に成功した場合は追加された項目のインデックスを返し、nullの項目を追加しようとした場合は-1を返し、すでに追加されている項目を追加しようとした場合はその項目のインデックスを返します。
removeCustomItems()、removeCustomItem()、およびremoveCustomItemAt()も参照してください 。
void addSeries(Bar3DSeries series)
series をグラフに追加します。グラフには複数の系列を含めることができますが、軸は1組のみであるため、可視化されたデータに意味を持たせるには、すべての系列の行と列が一致している必要があります。 グラフに複数の可視系列がある場合、軸のラベルが明示的に設定されていないときは、最初に追加された系列のみが軸上の行または列のラベルを生成します。新しく追加された系列で選択された棒が指定されている場合、その棒が強調表示され、既存の選択は解除されます。アクティブな選択を持つことができるのは、追加された系列のうち 1 つだけです。
GraphsNode::hasSeries()も参照してください 。
void clearSelection()
すべての関連シリーズから選択を解除します。
void doPicking(QPoint point)
point から取得したビュー座標を用いて、グラフの要素に対してピッキングを実行し、最初にヒットした項目を選択します。デフォルトの入力処理では、onTapped イベントを受信した際にこの処理が行われます。
selectedElementも参照してください 。
void doRayPicking(QVector3D origin, QVector3D direction)
origin から開始し、direction でグラフの要素に対してピッキングを実行し、最初にヒットした項目を選択します。
selectedElementも参照してください 。
bool hasSeries(Abstract3DSeries series)
series がすでにグラフに追加されているかどうかを返します。
void insertSeries(int index, Bar3DSeries series)
series を、シリーズリスト内のindex の位置に挿入します。series がすでにリストに追加されている場合は、新しいindex に移動されます。
注: シリーズを、元のインデックスよりも後の新しいindex に移動する場合 、リスト内での新しい位置は、シリーズが依然として元のインデックスにあるかのように計算されるため、最終的なインデックスは実際にはindex から1を減算した値になります。
関連項目: GraphsNode::hasSeries()。
void releaseCustomItem(Custom3DItem item)
item の所有権を取り戻し、グラフからitem を削除します。
注: 同じアイテムをグラフに再度追加する場合 、テクスチャファイルを再設定する必要があります。
「Custom3DItem::textureFile」も参照してください 。
void removeCustomItem(Custom3DItem item)
カスタムitem を削除します。これに割り当てられたリソースを削除します。
void removeCustomItemAt(vector3d position)
position にあるすべてのカスタム項目を削除します。それらに割り当てられていたリソースも削除します。
void removeCustomItems()
すべてのカスタムアイテムを削除します。それらに割り当てられていたリソースも削除します。
void removeSeries(Bar3DSeries series)
グラフからseries を取り除きます。
「GraphsNode::hasSeries()」も参照してください 。
Abstract3DAxis selectedAxis()
任意のラベルタイプでselectedElementChanged 信号を受信した後、選択された軸を取得するために使用できます。選択は、次のselectedElementChanged 信号が送信されるまで有効です。
選択された軸、またはnullを返します。
「selectedElement」も参照してください 。
Custom3DItem selectedCustomItem()
ElementType.CustomItem 型のselectedElementChanged シグナルを受信した後、選択されたカスタムアイテムを取得するために使用できます。アイテムの所有権はグラフに残ります。選択は、次のselectedElementChanged シグナルが送信されるまで有効です。
選択されたカスタムアイテム、またはnullを返します。
「selectedElement」も参照してください 。
qsizetype selectedCustomItemIndex()
ElementType.CustomItem 型のselectedElementChanged 信号を受信した後、選択されたカスタム項目のインデックスを照会するために使用できます。選択は、次のselectedElementChanged 信号が送信されるまで有効です。
選択されたカスタム項目のインデックス、または -1 を返します。
「selectedElement」も参照してください 。
int selectedLabelIndex()
任意のラベルタイプでselectedElementChanged 信号を受信した後、選択されたラベルのインデックスを取得するために使用できます。選択は、次のselectedElementChanged 信号が送信されるまで有効です。
選択されたラベルのインデックス、または -1 を返します。
「selectedElement」も参照してください 。
© 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.