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行または2列未満のサーフェスは有効なサーフェスとはみなされず、レンダリングされません。

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

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

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

[read-only] columnCount : const qsizetype

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

アクセス関数:

qsizetype columnCount() const

通知シグナル

void columnCountChanged(qsizetype count)

[read-only] rowCount : const qsizetype

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

アクセス関数:

qsizetype rowCount() const

通知シグナル

void rowCountChanged(qsizetype count)

[read-only] series : QSurface3DSeries* const

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

アクセス関数:

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)

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

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

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

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

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

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

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

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

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

このシグナルは、startIndex の位置から、count で指定された行数が変更されたときに発せられる。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 の単一項目を項目item に変更する。position の x 値は行を、y 値は列を示す。

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

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

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