このページでは

QSurfaceDataProxy Class

QSurfaceDataProxy クラスは、3D サーフェスグラフのデータプロキシです。詳細...

ヘッダー: #include <QSurfaceDataProxy>
CMake: find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: QT += graphs
QML内: SurfaceDataProxy
継承元: QAbstractDataProxy
継承元:

QHeightMapSurfaceDataProxy およびQItemModelSurfaceDataProxy

プロパティ

パブリック関数

QSurfaceDataProxy(QObject *parent = nullptr)
virtual ~QSurfaceDataProxy() override
qsizetype addRow(QSurfaceDataRow row)
qsizetype addRows(QSurfaceDataArray rows)
qsizetype columnCount() const
void insertRow(qsizetype rowIndex, QSurfaceDataRow row)
void insertRows(qsizetype rowIndex, QSurfaceDataArray rows)
const QSurfaceDataItem &itemAt(QPoint position) const
const QSurfaceDataItem &itemAt(qsizetype rowIndex, qsizetype columnIndex) const
void removeRows(qsizetype rowIndex, qsizetype removeCount)
void resetArray()
void resetArray(QSurfaceDataArray newArray)
qsizetype rowCount() const
QSurface3DSeries *series() const
void setItem(QPoint position, QSurfaceDataItem item)
void setItem(qsizetype rowIndex, qsizetype columnIndex, QSurfaceDataItem item)
void setRow(qsizetype rowIndex, QSurfaceDataRow row)
void setRows(qsizetype rowIndex, QSurfaceDataArray rows)

シグナル

void arrayReset()
void columnCountChanged(qsizetype count)
void itemChanged(qsizetype rowIndex, qsizetype columnIndex)
void rowCountChanged(qsizetype count)
void rowsAdded(qsizetype startIndex, qsizetype count)
void rowsChanged(qsizetype startIndex, qsizetype count)
void rowsInserted(qsizetype startIndex, qsizetype count)
void rowsRemoved(qsizetype startIndex, qsizetype count)
void seriesChanged(QSurface3DSeries *series)

詳細な説明

サーフェスデータプロキシは、サーフェス関連のデータを行単位で処理します。このために、2つの補助的な型エイリアス、QtGraphs::QSurfaceDataArray および QtGraphs::QSurfaceDataRow が提供されています。QSurfaceDataArray は、行を管理するQList です。QSurfaceDataRow は、QSurfaceDataItem オブジェクトを含むQList です。 プロキシへのデータの供給方法の詳細については、Q3DSurfaceWidgetItem のドキュメントにあるサンプルコードを参照してください。データはシリーズとして格納されるため、データセットに対してこれらの関数を使用する前に、プロキシに関連付けられたシリーズを作成する必要があります。

すべての行は、同じ数の項目を持つ必要があります。

QSurfaceDataProxy は、直接であれ、QSurfaceDataArray コンテナを介してであれ、渡されたすべてのQSurfaceDataRow オブジェクトの所有権を取得します。配列をプロキシに追加した後、サーフェスデータ行ポインタを使用してデータを直接変更するには、グラフを更新するために適切なシグナルをエミットする必要があります。

妥当なサーフェスを作成するには、すべての行において、連続する各項目のx値が、その行全体を通じて昇順または降順でなければならない。同様に、すべての列において、連続する各項目のz値が、その列全体を通じて昇順または降順でなければならない。

注:現在 、完全にサポートされているのは、行と列が直線的なサーフェスのみです。アイテムの z 値が完全に一致していない行、またはアイテムの x 値が完全に一致していない列がある場合、サーフェス全体が可視の x 軸または z 軸の範囲に完全に収まらないと、不適切にクリップされる可能性があります。

注: 行または列が2つ未満のサーフェスは 、線としてレンダリングされます。

注:一部の環境では 、表示される頂点数が多すぎるサーフェスは、グラフィックスドライバがサポートする 1 回の描画あたりの頂点数を超えるため、レンダリングされない場合があります。これは主に 32 ビットおよび OpenGL ES2 プラットフォームで発生する問題です。

「Qt Graphs 3D でのデータ処理」も参照してください 。

プロパティのドキュメント

[read-only] columnCount : qsizetype

このプロパティには、データ配列の列数が格納されます。

アクセス関数:

qsizetype columnCount() const

通知信号:

void columnCountChanged(qsizetype count)

[read-only] rowCount : qsizetype

このプロパティには、データ配列の行数が格納されます。

アクセス関数:

qsizetype rowCount() const

通知信号:

void rowCountChanged(qsizetype count)

[read-only] series : QSurface3DSeries*

このプロパティには、このプロキシが関連付けられているシリーズが格納されます。

アクセス関数:

QSurface3DSeries *series() const

通知シグナル:

void seriesChanged(QSurface3DSeries *series)

メンバ関数のドキュメント

[explicit] QSurfaceDataProxy::QSurfaceDataProxy(QObject *parent = nullptr)

指定されたparent を使用して、QSurfaceDataProxyを生成します。

[override virtual noexcept] QSurfaceDataProxy::~QSurfaceDataProxy()

サーフェスデータのプロキシを削除します。

qsizetype QSurfaceDataProxy::addRow(QSurfaceDataRow row)

配列の末尾に、新しい行 `row ` を追加します。新しい行は、元の配列内の行と同じ列数でなければなりません。

追加された行のインデックスを返します。

qsizetype QSurfaceDataProxy::addRows(QSurfaceDataArray rows)

配列の末尾に新しいrows を追加します。新しい行は、元の配列の行と同じ列数でなければなりません。

追加された最初の行のインデックスを返します。

[signal] void QSurfaceDataProxy::arrayReset()

このシグナルは、データ配列がリセットされたときに発せられます。resetArray() を呼び出さずに配列全体の内容を変更した場合は、グラフを更新するためにこのシグナルを発する必要があります。

void QSurfaceDataProxy::insertRow(qsizetype rowIndex, QSurfaceDataRow row)

新しい行 `row ` を `rowIndex` に挿入します。rowIndex が配列のサイズと等しい場合、行は配列の末尾に追加されます。新しい行は、元の配列の行と同じ列数でなければなりません。

void QSurfaceDataProxy::insertRows(qsizetype rowIndex, QSurfaceDataArray rows)

新しいrows をrowIndex に挿入します。rowIndex が配列のサイズと等しい場合、行は配列の末尾に追加されます。新しいrows は、元の配列の行数と同じ列数を持つ必要があります。

const QSurfaceDataItem &QSurfaceDataProxy::itemAt(QPoint position) const

位置 `position` にある項目へのポインタを返します。`position ` の x 値は行を、y 値は列を示します。この項目が有効であることは、データを変更する次の呼び出しが行われるまで保証されます。

const QSurfaceDataItem &QSurfaceDataProxy::itemAt(qsizetype rowIndex, qsizetype columnIndex) const

rowIndex およびcolumnIndex で指定された位置にある項目へのポインタを返します。このポインタが有効であることは、データを変更する次の呼び出しが行われるまでしか保証されません。

[signal] void QSurfaceDataProxy::itemChanged(qsizetype rowIndex, qsizetype columnIndex)

このシグナルは、rowIndex およびcolumnIndex で指定された位置にある項目が変更されたときに発火します。setItem() を呼び出さずに配列内の項目を変更した場合、グラフを更新するためにこのシグナルを発火させる必要があります。

void QSurfaceDataProxy::removeRows(qsizetype rowIndex, qsizetype removeCount)

rowIndex で指定された位置から、removeCount で指定された行数を削除します。配列の末尾より後の行を削除しようとしても、何も起こりません。

void QSurfaceDataProxy::resetArray()

既存の配列をクリアし、arrayReset() 信号をトリガーします。

void QSurfaceDataProxy::resetArray(QSurfaceDataArray newArray)

* `newArray` から配列を設定します。新しい配列が * 既存の配列と等しい場合、この関数は単に `arrayReset()` 信号をトリガーします。

[signal] void QSurfaceDataProxy::rowsAdded(qsizetype startIndex, qsizetype count)

このシグナルは、startIndex の位置から、count で指定された行数が追加されたときに発信されます。addRow() またはaddRows() を呼び出さずに配列に行が追加された場合、グラフを更新するためにこのシグナルを発信する必要があります。

[signal] void QSurfaceDataProxy::rowsChanged(qsizetype startIndex, qsizetype count)

このシグナルは、`count ` で指定された行数が、位置 `startIndex` から変更された際に発せられます。setRow() またはsetRows() を呼び出さずに配列の行を変更した場合、グラフを更新するためにこのシグナルを発する必要があります。

[signal] void QSurfaceDataProxy::rowsInserted(qsizetype startIndex, qsizetype count)

このシグナルは、count で指定された行数が、startIndex の位置に挿入されたときに発生します。

insertRow() またはinsertRows() を呼び出さずに配列に行を挿入した場合、グラフを更新するためにこのシグナルを発生させる必要があります。

[signal] void QSurfaceDataProxy::rowsRemoved(qsizetype startIndex, qsizetype count)

このシグナルは、startIndex の位置から、count で指定された行数が削除されたときに発生します。

配列の末尾から行が削除された場合、インデックスは現在の配列サイズとなります。removeRows() を呼び出さずに配列から行を削除した場合は、グラフを更新するためにこのシグナルを発行する必要があります。

void QSurfaceDataProxy::setItem(QPoint position, QSurfaceDataItem item)

位置position にある1つの項目を、item の項目に変更します。position のx値は行を、y値は列を示します。

void QSurfaceDataProxy::setItem(qsizetype rowIndex, qsizetype columnIndex, QSurfaceDataItem item)

rowIndex およびcolumnIndex で指定された位置にある 1 つの項目を、item の項目に変更します。

void QSurfaceDataProxy::setRow(qsizetype rowIndex, QSurfaceDataRow row)

rowIndex の位置にある行を、row で指定された新しい行に置き換えることで、既存の行を変更します。新しい行は、rowIndex にすでに格納されている既存の行と同じものでも構いません。新しい行は、置き換える行と同じ列数でなければなりません。

void QSurfaceDataProxy::setRows(qsizetype rowIndex, QSurfaceDataArray rows)

rowIndex の位置から始まる行を、rows で指定された新しい行に置き換えることで、既存の行を変更します。rows 配列内の行は、rowIndex にすでに格納されている既存の行と同じであってもかまいません。新しい行は、置き換える行と同じ列数でなければなりません。

関連する非メンバー

[alias] QSurfaceDataArray

QSurfaceDataRow オブジェクトへのポインタのリスト。

[alias] QSurfaceDataRow

QSurfaceDataItem オブジェクトの一覧。

© 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.