QSurfaceDataProxy Class

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

Header: #include <QSurfaceDataProxy>
CMake: find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake: QT += datavisualization
Since: QtDataVisualization 1.0
In QML: SurfaceDataProxy
Inherits: QAbstractDataProxy
Inherited By:

QHeightMapSurfaceDataProxy and 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

Notifier シグナル:

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)

このシグナルは、startIndex の位置から、count で指定された行数が変更されたときに発行される。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 にある 1 つの項目を、項目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 オブジェクトのリスト。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。