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つの補助的な型定義を提供します:QtDataVisualization::QSurfaceDataArray と QtDataVisualization::QSurfaceDataRow です。QSurfaceDataArray は、行を制御するQList です。QSurfaceDataRow は、QSurfaceDataItem オブジェクトを含むQList です。プロキシにデータを供給する方法の詳細については、Q3DSurface ドキュメントのサンプルコードを参照してください。

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

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

適切なサーフェスを作成するには、すべての行の連続する各項目のx値は、行全体を通して昇順または降順でなければならない。同様に、すべての列で連続する各アイテムのz値は、列全体で昇順または降順でなければならない。

注意: 現在のところ、行と列がまっすぐなサーフェスのみが完全にサポートされています。z値がまったく同じでないアイテムを持つ行や、x値がまったく同じでないアイテムを持つ列は、サーフェス全体が可視のx軸またはz軸の範囲に完全に収まらない場合、正しくクリッピングされないことがあります。

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

注意: 環境によっては、可視頂点数が多いサーフェスがレンダリングされないことがあります。これは、主に32ビットとOpenGL ES2プラットフォームでの問題です。

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

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

[read-only] columnCount : const int

このプロパティは、データ配列の列数を保持する。

アクセス関数:

int columnCount() const

通知シグナル

void columnCountChanged(int count)

[read-only] rowCount : const int

このプロパティは、データ配列の行数を保持する。

アクセス関数:

int rowCount() const

通知シグナル

void rowCountChanged(int count)

[read-only] series : QSurface3DSeries* const

このプロパティは、このプロキシがアタッチされているシリーズを保持する。

アクセス関数:

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)

新しい行rowrowIndex に挿入する。rowIndex が配列のサイズと等しい場合、行は配列の末尾に追加される。新しい行は、初期配列の行と同じ列数でなければならない。

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

新しいrowsrowIndex に挿入する。rowIndex が配列のサイズと等しい場合、行は配列の末尾に追加される。新しいrows は、初期配列の行と同じ数の列を持たなければならない。

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

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

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

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

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

このシグナルは、rowIndexcolumnIndex で指定された位置の項目が変更されたときに発せられる。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)

このシグナルは、startIndex の位置から、count で指定された数の行が追加されたときに発せられる。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)

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

インデックスには、配列の末尾から行が削除された場合の現在の配列サイズを指定する。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)

rowIndexcolumnIndex で指定された位置の単一項目を、項目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 オブジェクトのリスト。

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