このページでは

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() 関数は、デフォルトの挙動とは異なる挙動が必要な場合にのみ、再実装する必要があります。

注: ソースモデルが削除された場合 、またはソースモデルが指定されていない場合、プロキシモデルは空のプレースホルダーモデルに対して動作します。

関連項目: QSortFilterProxyModel 、QAbstractItemModel 、およびModel/View Programming。

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

[bindable] sourceModel : QAbstractItemModel*

注:この プロパティは、QProperty バインディングに対応しています。

このプロパティには、このプロキシモデルのソースモデルが格納されます。

アクセス関数:

QAbstractItemModel *sourceModel() const
virtual void setSourceModel(QAbstractItemModel *sourceModel)

Notifierシグナル:

void sourceModelChanged()[see note below]

注:これは プライベートなシグナルです。シグナル接続で使用することはできますが、ユーザーが発行することはできません。

メンバ関数のドキュメント

[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 を再実装します。

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