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 |
プロパティ
- sourceModel : QAbstractItemModel*
パブリック関数
| 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 |
シグナル
| void | sourceModelChanged() |
保護された関数
(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.