이 페이지에서

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은 여러 소스 모델을 받아 해당 행들을 연결합니다.

즉, 프록시에는 첫 번째 소스 모델의 모든 행이 먼저 오고, 그 다음에 두 번째 소스 모델의 모든 행이 오는 식으로 나열됩니다.

소스 모델의 열 수가 서로 다른 경우, 프록시는 열 수가 가장 적은 소스 모델의 열 수만큼만 포함합니다. 다른 소스 모델에 있는 추가 열은 단순히 무시됩니다.

소스 모델은 런타임에 추가 및 제거할 수 있으며, 열 수는 그에 따라 조정됩니다.

이 프록시는 단일 소스 모델이 아닌 여러 소스 모델을 사용하기 때문에 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 목록의 첫 번째 인덱스에 해당하는 소스 모델로 전달됩니다.

중요: 이 프록시는 단일 행의 드래그만 지원한다는 점에 유의하십시오. 서로 다른 소스 모델에서 비롯된 행을 드래그하는 것은 이 프록시 모델에서 일반적으로 구현할 수 없기 때문에, 여러 행의 인덱스로 호출될 경우 어서트 오류가 발생합니다. 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.