QItemEditorCreatorBase Class
QItemEditorCreatorBase 클래스는 새로운 항목 편집기 생성기를 구현할 때 반드시 서브클래스로 상속해야 하는 추상 기본 클래스를 제공합니다. 더 보기...
| 헤더: | #include <QItemEditorCreatorBase> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 상속된 항목: |
공개 함수
| virtual | ~QItemEditorCreatorBase() |
| virtual QWidget * | createWidget(QWidget *parent) const = 0 |
| virtual QByteArray | valuePropertyName() const = 0 |
상세 설명
QItemEditorCreatorBase 객체는 특정 QVariant 데이터 유형에 대한 편집기 위젯을 제공하는 특화된 위젯 팩토리입니다. 이 객체들은 QItemEditorFactory 에 의해 QStyledItemDelegate에 대한 편집기를 생성하는 데 사용됩니다. Creator 기반 클래스는 QItemEditorFactory::registerEditor()에 등록되어야 합니다.
에디터는 편집 대상 데이터에 대한 사용자 속성을 제공해야 합니다. 그러면 QItemDelegates는 Qt의 메타 객체 시스템을 사용하여 해당 속성에 접근함으로써 편집 데이터를 설정하고 가져올 수 있습니다. 속성은 USER 키워드를 사용하여 사용자 속성으로 설정됩니다:
Q_PROPERTY(QColor color READ color WRITE setColor USER true)편집기가 사용자 속성을 제공하지 않는 경우, valuePropertyName()에서 속성 이름을 반환해야 합니다. 그러면 델리게이트는 해당 이름을 사용하여 속성에 접근합니다. 사용자 속성이 존재하는 경우, 항목 델리게이트는 valuePropertyName()를 호출하지 않습니다.
QStandardItemEditorCreator 는 QItemEditorCreatorBase를 서브클래스화할 필요 없이 위젯을 등록하는 데 사용할 수 있는 편리한 템플릿 클래스입니다.
QStandardItemEditorCreator, QItemEditorFactory 및 모델/뷰 프로그래밍항목도 참조하십시오 .
멤버 함수 문서
[virtual noexcept] QItemEditorCreatorBase::~QItemEditorCreatorBase()
에디터 생성자 객체를 삭제합니다.
[pure virtual] QWidget *QItemEditorCreatorBase::createWidget(QWidget *parent) const
지정된 ` parent`를 가진 에디터 위젯을 반환합니다.
이 클래스의 서브클래스에서 이 함수를 구현할 때는, 지정된 부모 위젯을 사용하여 새로운 편집기 위젯을 생성하고 반환해야 합니다.
[pure virtual] QByteArray QItemEditorCreatorBase::valuePropertyName() const
생성자의 편집기 위젯에서 값을 가져오고 설정하는 데 사용되는 속성의 이름을 반환합니다.
서브클래스에서 이 함수를 구현할 때, 이 함수가 지정한 에디터 위젯의 속성이 크리에이터가 등록된 유형을 수용할 수 있도록 해야 합니다. 예를 들어, 부울 값을 편집하기 위해 QCheckBox 위젯을 생성하는 크리에이터는 이 함수에서 checkable 속성 이름을 반환하며, QMetaType::Bool 유형에 대한 아이템 에디터 팩토리에 등록되어야 합니다.
참고: Qt 4.2부터는 항목 델리게이트가 위젯의 user 속성을 조회하며, 위젯에 user 속성이 없는 경우에만 이 함수를 호출합니다. QAbstractItemDelegate::setModelData() 및 QAbstractItemDelegate::setEditorData()을 재구현하여 이 동작을 재정의할 수 있습니다.
QMetaObject::userProperty() 및 QItemEditorFactory::registerEditor()도 참조하십시오 .
© 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.