이 페이지에서

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 프로그래밍.

속성 문서

[bindable] sourceModel : QAbstractItemModel*

참고: 이 속성은 QProperty 바인딩을 지원합니다.

이 속성은 이 프록시 모델의 소스 모델을 포함합니다.

액세스 함수:

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

알림 신호:

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.