このページでは

QSurfaceDataProxy Class

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

ヘッダー: #include <QSurfaceDataProxy>
CMake: find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake: QT += datavisualization
バージョン: QtDataVisualization 1.0
QMLでの使用開始: SurfaceDataProxy
継承元: QAbstractDataProxy
継承元:

QHeightMapSurfaceDataProxy およびQItemModelSurfaceDataProxy

ステータス: 非推奨

このクラスは非推奨です。新しいコードでの使用は強く推奨しません。

プロパティ

パブリック関数

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

シグナル

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

詳細な説明

サーフェスデータプロキシは、サーフェス関連のデータを行単位で処理します。このために、2つの補助的なtypedef、QtDataVisualization::QSurfaceDataArrayおよびQtDataVisualization::QSurfaceDataRowが提供されています。QSurfaceDataArray は、行を制御するQList です。QSurfaceDataRow は、QSurfaceDataItem オブジェクトを含むQList です。 プロキシへのデータの供給方法の詳細については、Q3DSurface のドキュメントにあるサンプルコードを参照してください。

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

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

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

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

注: 行または列が2つ未満のサーフェスは 有効なサーフェスとは見なされず、レンダリングされません。

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

「Qt Data Visualization のデータ処理」も参照してください 。

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

[read-only] columnCount : int

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

アクセス関数:

int columnCount() const

通知信号:

void columnCountChanged(int count)

[read-only] rowCount : int

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

アクセス関数:

int rowCount() const

通知信号:

void rowCountChanged(int count)

[read-only] series : QSurface3DSeries*

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

アクセス関数:

QSurface3DSeries *series() const

通知シグナル:

void seriesChanged(QSurface3DSeries *series)

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

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

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

[virtual noexcept] QSurfaceDataProxy::~QSurfaceDataProxy()

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

int QSurfaceDataProxy::addRow(QSurfaceDataRow *row)

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

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

int QSurfaceDataProxy::addRows(const QSurfaceDataArray &rows)

配列の末尾に新しいrows を追加します。新しい行は、元の配列の行と同じ列数である必要があります。

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

const QSurfaceDataArray *QSurfaceDataProxy::array() const

データ配列へのポインタを返します。

[signal] void QSurfaceDataProxy::arrayReset()

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

void QSurfaceDataProxy::insertRow(int rowIndex, QSurfaceDataRow *row)

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

void QSurfaceDataProxy::insertRows(int rowIndex, const QSurfaceDataArray &rows)

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

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

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

const QSurfaceDataItem *QSurfaceDataProxy::itemAt(int rowIndex, int columnIndex) const

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

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

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

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

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

void QSurfaceDataProxy::resetArray(QSurfaceDataArray *newArray)

配列 `newArray` の所有権を取得します。新しい配列が既存の配列と異なる場合、既存の配列をクリアします。配列が同一の場合、この関数は単に `arrayReset()` シグナルをトリガーするだけです。

null配列を渡すと、古い配列が削除され、新しい空の配列が作成されます。newArray 内のすべての行は、同じ長さでなければなりません。

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

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

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

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

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

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

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

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

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

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

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

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

void QSurfaceDataProxy::setItem(int rowIndex, int columnIndex, const QSurfaceDataItem &item)

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

void QSurfaceDataProxy::setRow(int rowIndex, QSurfaceDataRow *row)

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

void QSurfaceDataProxy::setRows(int rowIndex, const QSurfaceDataArray &rows)

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

関連する非メンバー

QSurfaceDataArray

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

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.