QSurfaceDataProxy Class

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

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

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

Notifier シグナル:

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 にある 1 つの項目を、項目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 オブジェクトのリスト。

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