QConcatenateTablesProxyModel Class
QConcatenateTablesProxyModel クラスは、複数のソースモデルをプロキシし、それらの行を連結します。詳細...
| ヘッダー: | #include <QConcatenateTablesProxyModel> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 継承元: | QAbstractItemModel |
パブリック関数
| QConcatenateTablesProxyModel(QObject *parent = nullptr) | |
| virtual | ~QConcatenateTablesProxyModel() |
| void | addSourceModel(QAbstractItemModel *sourceModel) |
| QModelIndex | mapFromSource(const QModelIndex &sourceIndex) const |
| QModelIndex | mapToSource(const QModelIndex &proxyIndex) const |
| void | removeSourceModel(QAbstractItemModel *sourceModel) |
| QList<QAbstractItemModel *> | sourceModels() const |
再実装されたパブリック関数
| virtual bool | canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const override |
| virtual int | columnCount(const QModelIndex &parent = QModelIndex()) const override |
| virtual QVariant | data(const QModelIndex &index, int role = Qt::DisplayRole) const override |
| virtual bool | dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override |
| virtual Qt::ItemFlags | flags(const QModelIndex &index) const override |
| virtual QVariant | headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override |
| virtual QModelIndex | index(int row, int column, const QModelIndex &parent = QModelIndex()) 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 QModelIndex | parent(const QModelIndex &index) const override |
(since 6.9.0) virtual QHash<int, QByteArray> | roleNames() const override |
| virtual int | rowCount(const QModelIndex &parent = QModelIndex()) const override |
| virtual bool | setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override |
| virtual bool | setItemData(const QModelIndex &proxyIndex, const QMap<int, QVariant> &roles) override |
| virtual QSize | span(const QModelIndex &index) const override |
詳細な説明
QConcatenateTablesProxyModel は、複数のソースモデルを受け取り、それらの行を連結します。
つまり、プロキシには、最初のソースモデルのすべての行が先頭に配置され、その後に 2 番目のソースモデルのすべての行が続き、というように順に並んだ状態になります。
ソースモデルの列数が異なる場合、プロキシには列数が最も少ないソースモデルと同じ数の列のみが含まれます。他のソースモデルにある追加の列は、単に無視されます。
ソースモデルは実行時に追加・削除が可能で、列数はそれに応じて調整されます。
このプロキシは、単一のソースモデルではなく複数のソースモデルを使用するため、QAbstractProxyModel を継承していません。
サポートされるのはフラットモデル(リストやテーブル)のみで、ツリーモデルはサポートされていません。
関連項目: QAbstractProxyModel 、Model/View Programming、QIdentityProxyModel 、およびQAbstractItemModel 。
メンバ関数のドキュメント
[explicit] QConcatenateTablesProxyModel::QConcatenateTablesProxyModel(QObject *parent = nullptr)
指定されたparent を使用して、行連結プロキシモデルを構築します。
[virtual noexcept] QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel()
このプロキシモデルを破棄します。
void QConcatenateTablesProxyModel::addSourceModel(QAbstractItemModel *sourceModel)
ソースモデル「sourceModel 」を、以前に追加されたすべてのソースモデルの下に追加します。
sourceModel の所有権は、この操作によって影響を受けません。
同じソースモデルを複数回追加することはできません。
[override virtual] bool QConcatenateTablesProxyModel::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] int QConcatenateTablesProxyModel::columnCount(const QModelIndex &parent = QModelIndex()) const
QAbstractItemModel::columnCount(const QModelIndex &parent) const を再実装します。
このメソッドは、ソースモデルの中で列数が最も少ないモデルの列数を返します。
[override virtual] QVariant QConcatenateTablesProxyModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const
QAbstractItemModel::data(const QModelIndex &index, int role) const を再実装します。
setData()も参照してください 。
[override virtual] bool QConcatenateTablesProxyModel::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)を再実装します。
QConcatenateTablesProxyModel アイテム上、アイテム間、および最後のアイテムの後にドロップされた場合を処理します。いずれの場合も、呼び出しは基になるソースモデルに転送されます。アイテム上にドロップされた場合は、そのアイテムのソースモデルが呼び出されます。アイテム間にドロップされた場合は、ドロップ位置の直下に位置するソースモデルが呼び出されます。最後のアイテムの後にドロップされた場合は、最後のソースモデルが呼び出されます。
[override virtual] Qt::ItemFlags QConcatenateTablesProxyModel::flags(const QModelIndex &index) const
QAbstractItemModel::flags(const QModelIndex &index) const を再実装します。
指定されたインデックスに対応するフラグを返します。index が有効な場合、フラグはこのindex のソースモデルから取得されます。index が無効な場合(例えば、ビュー内の空の領域へのドロップが許可されるかどうかを判断するために使用される場合など)、最初のモデルからのフラグが返されます。
[override virtual] QVariant QConcatenateTablesProxyModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const
QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const を再実装します。
このメソッドは、最初のソースモデルに対する水平方向のヘッダーデータと、各行に対応するソースモデルに対する垂直方向のヘッダーデータを返します。
[override virtual] QModelIndex QConcatenateTablesProxyModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const
QAbstractItemModel::index (int row, int column, const QModelIndex &parent)const を再実装します。
[override virtual] QMap<int, QVariant> QConcatenateTablesProxyModel::itemData(const QModelIndex &proxyIndex) const
QAbstractItemModel::itemData(const QModelIndex &index) const を再実装します。
setItemData()も参照してください 。
[invokable] QModelIndex QConcatenateTablesProxyModel::mapFromSource(const QModelIndex &sourceIndex) const
指定されたsourceIndex に対するプロキシインデックスを返します。この は、任意のソースモデルから取得されたものでも構いません。
注:この関数は 、メタオブジェクトシステムを介して、またはQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
[invokable] QModelIndex QConcatenateTablesProxyModel::mapToSource(const QModelIndex &proxyIndex) const
指定されたproxyIndex のソースインデックスを返します。
注:この関数は 、メタオブジェクトシステムおよびQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
[override virtual] QMimeData *QConcatenateTablesProxyModel::mimeData(const QModelIndexList &indexes) const
QAbstractItemModel::mimeData(const QModelIndexList &indexes) const を再実装します。
この呼び出しは、indexes のリスト内の最初のインデックスに対応するソースモデルに転送されます。
重要:このプロキシは、1 行のみのドラッグのみをサポートしていることに注意してください。異なるソースモデルに由来する可能性のある行のドラッグは、このプロキシモデルでは汎用的に実装できないため、複数の行のインデックスで呼び出されるとアサーションが発生します。QMimeData 内の各データはマージする必要がありますが、その処理はデータ型ごとに異なります。複数の行のドラッグをサポートしたい場合は、サブクラスでこのメソッドを再実装してください。
[override virtual] QStringList QConcatenateTablesProxyModel::mimeTypes() const
QAbstractItemModel::mimeTypes() const を再実装します。
このメソッドは、最初のソースモデルのMIMEタイプを返します。
[override virtual] QModelIndex QConcatenateTablesProxyModel::parent(const QModelIndex &index) const
QAbstractItemModel::parent(const QModelIndex &index) const を再実装します。
void QConcatenateTablesProxyModel::removeSourceModel(QAbstractItemModel *sourceModel)
以前にこのプロキシに追加されていたソースモデル「sourceModel 」を削除します。
sourceModel の所有権は、この操作の影響を受けません。
[override virtual, since 6.9.0] QHash<int, QByteArray> QConcatenateTablesProxyModel::roleNames() const
QAbstractItemModel::roleNames() const を再実装します。
基になるモデルの roleNames() の和集合を返します。
ソースモデル間で同じロールに異なる名前が割り当てられている場合、最後のソースモデルで使用された名前が、それ以前のモデルで使用された名前に優先します。
この関数は Qt 6.9.0 で導入されました。
[override virtual] int QConcatenateTablesProxyModel::rowCount(const QModelIndex &parent = QModelIndex()) const
QAbstractItemModel::rowCount(const QModelIndex &parent) const を再実装します。
[override virtual] bool QConcatenateTablesProxyModel::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 QConcatenateTablesProxyModel::setItemData(const QModelIndex &proxyIndex, const QMap<int, QVariant> &roles)
QAbstractItemModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles) を再実装しています。
itemData()も参照してください 。
QList<QAbstractItemModel *> QConcatenateTablesProxyModel::sourceModels() const
このプロキシモデルのソースモデルとして追加されたモデルのリストを返します。
[override virtual] QSize QConcatenateTablesProxyModel::span(const QModelIndex &index) const
QAbstractItemModel::span(const QModelIndex &index) 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.