QAbstractProxyModel Class

QAbstractProxyModel クラスは、ソートやフィルタリング、その他のデータ処理タスクを行うプロキシ項目モデルの基底クラスを提供します。詳細...

ヘッダ #include <QAbstractProxyModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
を継承する: QAbstractItemModel
によって継承される:

QIdentityProxyModel,QSortFilterProxyModel, およびQTransposeProxyModel

プロパティ

パブリック関数

QAbstractProxyModel(QObject *parent = nullptr)
virtual ~QAbstractProxyModel()
QBindable<QAbstractItemModel *> bindableSourceModel()
virtual QModelIndex mapFromSource(const QModelIndex &sourceIndex) const = 0
virtual QItemSelection mapSelectionFromSource(const QItemSelection &sourceSelection) const
virtual QItemSelection mapSelectionToSource(const QItemSelection &proxySelection) const
virtual QModelIndex mapToSource(const QModelIndex &proxyIndex) const = 0
virtual void setSourceModel(QAbstractItemModel *sourceModel)
QAbstractItemModel *sourceModel() const

再実装パブリック関数

virtual QModelIndex buddy(const QModelIndex &index) const override
virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const override
virtual bool canFetchMore(const QModelIndex &parent) const override
(since 6.0) virtual bool clearItemData(const QModelIndex &index) override
virtual QVariant data(const QModelIndex &proxyIndex, int role = Qt::DisplayRole) const override
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
virtual void fetchMore(const QModelIndex &parent) override
virtual Qt::ItemFlags flags(const QModelIndex &index) const override
virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const override
virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override
virtual QMap<int, QVariant> itemData(const QModelIndex &proxyIndex) const override
virtual QMimeData *mimeData(const QModelIndexList &indexes) const override
virtual QStringList mimeTypes() const override
virtual void revert() override
virtual QHash<int, QByteArray> roleNames() const override
virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override
virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole) override
virtual bool setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles) override
virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const override
virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override
virtual QSize span(const QModelIndex &index) const override
virtual bool submit() override
virtual Qt::DropActions supportedDragActions() const override
virtual Qt::DropActions supportedDropActions() const override

シグナル

保護された関数

(since 6.2) QModelIndex createSourceIndex(int row, int col, void *internalPtr) const

詳細な説明

このクラスは、プロキシモデルが他のモデル/ビューコンポーネントと正しく相互運用するために使わなければならない標準インターフェースを定義します。直接インスタンス化されることは想定されていません。

全ての標準プロキシモデルは QAbstractProxyModel クラスから派生します。新しいプロキシモデルクラスを作成する必要がある場合、通常は、提供したい動作に最も近い動作を提供する既存のクラスをサブクラス化する方が良いでしょう。

ソース・モデルからデータの項目をフィルタリングしたりソートしたりするプロキシ・モデルは、QSortFilterProxyModel を使用するかサブクラス化して作成する必要があります。

QAbstractProxyModel をサブクラス化するには、mapFromSource() とmapToSource() を実装する必要があります。mapSelectionFromSource() およびmapSelectionToSource() 関数を再実装する必要があるのは、デフォルトの動作と異なる動作が必要な場合だけです。

注釈 ソース・モデルが削除されているか、ソース・モデルが指定されていない場合、プロキシ・モデルは空のプレースホルダ・モ デルを操作します。

QSortFilterProxyModelQAbstractItemModelモデル/ビュー・プログラミングも参照してください

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

[bindable] sourceModel : QAbstractItemModel*

注: このプロパティはQProperty バインディングをサポートします。

このプロパティは、このプロキシモデルのソースモデルを保持する。

メンバ関数ドキュメント

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

与えられたparent でプロキシモデルを構築する。

[virtual noexcept] QAbstractProxyModel::~QAbstractProxyModel()

プロキシモデルを破壊する。

[override virtual] QModelIndex QAbstractProxyModel::buddy(const QModelIndex &index) const

再実装:QAbstractItemModel::buddy(const QModelIndex &index) const.

[override virtual] bool QAbstractProxyModel::canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const

再実装:QAbstractItemModel::canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const.

[override virtual] bool QAbstractProxyModel::canFetchMore(const QModelIndex &parent) const

再実装:QAbstractItemModel::canFetchMore(const QModelIndex &parent) const.

[override virtual, since 6.0] bool QAbstractProxyModel::clearItemData(const QModelIndex &index)

再実装:QAbstractItemModel::clearItemData(const QModelIndex &index)。

この関数は Qt 6.0 で導入されました。

[protected, since 6.2] QModelIndex QAbstractProxyModel::createSourceIndex(int row, int col, void *internalPtr) const

ソースモデルで createIndex を呼び出すのと同じです。

このメソッドは、プロキシ・モデルがソース・モデルの項目の親子関係を維持したい場合に便利です。mapToSource() を再実装する場合、このメソッドを呼び出して、ソースモデルの行row と列col のインデックスを作成することができます。

典型的な使用方法は、mapFromSource() を再実装する際に、ソースモデルから来る内部ポインタをプロキシインデックスに保存し、mapToSource() を再実装する際に、internalPtr と同じ内部ポインタを使用して元のソースインデックスを復元することです。

この関数は Qt 6.2 で導入されました。

[override virtual] QVariant QAbstractProxyModel::data(const QModelIndex &proxyIndex, int role = Qt::DisplayRole) const

再実装:QAbstractItemModel::data(const QModelIndex &index, int role) const.

setData()も参照してください

[override virtual] bool QAbstractProxyModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)

再実装:QAbstractItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).

[override virtual] void QAbstractProxyModel::fetchMore(const QModelIndex &parent)

再実装:QAbstractItemModel::fetchMore(const QModelIndex &parent).

[override virtual] Qt::ItemFlags QAbstractProxyModel::flags(const QModelIndex &index) const

再実装:QAbstractItemModel::flags(const QModelIndex &index) const.

[override virtual] bool QAbstractProxyModel::hasChildren(const QModelIndex &parent = QModelIndex()) const

再実装:QAbstractItemModel::hasChildren(const QModelIndex &parent) const.

[override virtual] QVariant QAbstractProxyModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const

再実装:QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const.

setHeaderData()も参照してください

[override virtual] QMap<int, QVariant> QAbstractProxyModel::itemData(const QModelIndex &proxyIndex) const

再実装:QAbstractItemModel::itemData(const QModelIndex &index) const.

setItemData()も参照してください

[pure virtual invokable] QModelIndex QAbstractProxyModel::mapFromSource(const QModelIndex &sourceIndex) const

この関数を再実装して、ソースモデルのsourceIndex に対応するプロキシモデルのモデルインデックスを返します。

注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

mapToSource()も参照してください

[virtual invokable] QItemSelection QAbstractProxyModel::mapSelectionFromSource(const QItemSelection &sourceSelection) const

指定されたsourceSelection からマップされたプロキシ選択範囲を返します。

ソースセレクションをプロキシセレクションにマップするには、このメソッドを再実装します。

注意: この関数はメタオブジェクトシステムや QML から呼び出すことができます。Q_INVOKABLE を参照してください。

[virtual invokable] QItemSelection QAbstractProxyModel::mapSelectionToSource(const QItemSelection &proxySelection) const

指定されたproxySelection からマッピングされたソース選択を返します。

プロキシ選択範囲をソース選択範囲にマップするために、このメソッドを再実装します。

注意: この関数はメタオブジェクトシステムや QML から呼び出すことができます。Q_INVOKABLE を参照してください。

[pure virtual invokable] QModelIndex QAbstractProxyModel::mapToSource(const QModelIndex &proxyIndex) const

この関数を再実装して、プロキシモデルのproxyIndex に対応するソースモデルのモデルインデックスを返します。

注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

mapFromSource()も参照してください

[override virtual] QMimeData *QAbstractProxyModel::mimeData(const QModelIndexList &indexes) const

再実装:QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.

[override virtual] QStringList QAbstractProxyModel::mimeTypes() const

再実装:QAbstractItemModel::mimeTypes() const.

[override virtual] void QAbstractProxyModel::revert()

再インプリメント:QAbstractItemModel::revert().

[override virtual] QHash<int, QByteArray> QAbstractProxyModel::roleNames() const

再実装:QAbstractItemModel::roleNames() const.

[override virtual] bool QAbstractProxyModel::setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)

再実装:QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role)。

data()も参照してください

[override virtual] bool QAbstractProxyModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole)

再実装:QAbstractItemModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role).

headerData()も参照してください

[override virtual] bool QAbstractProxyModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles)

再実装:QAbstractItemModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles)。

itemData()も参照してください

[virtual] void QAbstractProxyModel::setSourceModel(QAbstractItemModel *sourceModel)

与えられたsourceModel をプロキシモデルで処理するように設定します。

サブクラスは、メソッドの最初にbeginResetModel() を呼び出し、古いモデルとの接続を切断し、このメソッドを呼び出し、新しいモデルに接続し、endResetModel() を呼び出す必要があります。

注釈 sourceModel プロパティのセッター関数です。

sourceModel()も参照してください

[override virtual] QModelIndex QAbstractProxyModel::sibling(int row, int column, const QModelIndex &idx) const

再実装:QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const.

[override virtual] void QAbstractProxyModel::sort(int column, Qt::SortOrder order = Qt::AscendingOrder)

を再実装しています:QAbstractItemModel::sort(int column, Qt::SortOrder order).

QAbstractItemModel *QAbstractProxyModel::sourceModel() const

プロキシモデルを通して利用可能なデータを含むモデルを返します。

注釈 sourceModel プロパティのゲッター関数です。

setSourceModel()も参照してください

[override virtual] QSize QAbstractProxyModel::span(const QModelIndex &index) const

再実装:QAbstractItemModel::span(const QModelIndex &index) const.

[override virtual] bool QAbstractProxyModel::submit()

再インプリメント:QAbstractItemModel::submit().

[override virtual] Qt::DropActions QAbstractProxyModel::supportedDragActions() const

再実装:QAbstractItemModel::supportedDragActions() const.

[override virtual] Qt::DropActions QAbstractProxyModel::supportedDropActions() const

再実装:QAbstractItemModel::supportedDropActions() const.

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