QDesignerMemberSheetExtension Class
QDesignerMemberSheetExtension 클래스를 사용하면 Qt Widgets Designer 의 신호 및 슬롯 편집 모드를 통해 연결을 구성할 때 표시되는 위젯의 멤버 함수를 조작할 수 있습니다. 더 보기...
| 헤더: | #include <QDesignerMemberSheetExtension> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Designer) target_link_libraries(mytarget PRIVATE Qt6::Designer) |
| qmake: | QT += designer |
공개 함수
| QDesignerMemberSheetExtension() | |
| QDesignerMemberSheetExtension(const QDesignerMemberSheetExtension &) | |
| QDesignerMemberSheetExtension(QDesignerMemberSheetExtension &&) | |
| virtual | ~QDesignerMemberSheetExtension() |
| virtual int | count() const = 0 |
| virtual QString | declaredInClass(int index) const = 0 |
| virtual int | indexOf(const QString &name) const = 0 |
| virtual bool | inheritedFromWidget(int index) const = 0 |
| virtual bool | isSignal(int index) const = 0 |
| virtual bool | isSlot(int index) const = 0 |
| virtual bool | isVisible(int index) const = 0 |
| virtual QString | memberGroup(int index) const = 0 |
| virtual QString | memberName(int index) const = 0 |
| virtual QList<QByteArray> | parameterNames(int index) const = 0 |
| virtual QList<QByteArray> | parameterTypes(int index) const = 0 |
| virtual void | setMemberGroup(int index, const QString &group) = 0 |
| virtual void | setVisible(int index, bool visible) = 0 |
| virtual QString | signature(int index) const = 0 |
| QDesignerMemberSheetExtension & | operator=(QDesignerMemberSheetExtension &&) |
| QDesignerMemberSheetExtension & | operator=(const QDesignerMemberSheetExtension &) |
상세 설명
QDesignerMemberSheetExtension은 일반적으로 위젯의 멤버 함수를 조회하고, Qt Widgets Designer 의 시그널 및 슬롯 편집 모드에서 멤버 함수의 표시 방식을 조작하는 데 사용되는 함수 모음입니다. 예를 들어:
QDesignerMemberSheetExtension *memberSheet = nullptr;
QExtensionManager manager = formEditor->extensionManager();
memberSheet = qt_extension<QDesignerMemberSheetExtension*>(manager, widget);
int index = memberSheet->indexOf(setEchoMode);
memberSheet->setVisible(index, false);
delete memberSheet;사용자 정의 위젯 플러그인을 구현할 때, QDesignerCustomWidgetInterface::initialize() 함수의 매개변수를 통해 Qt Widgets Designer 의 현재 QDesignerFormEditorInterface 객체(위 예제에서는formEditor )에 대한 포인터가 제공됩니다.
멤버 시트(및 기타 확장 기능)는 qt_extension() 함수를 사용하여 Qt Widgets Designer 의 확장 관리자를 조회함으로써 가져올 수 있습니다. 확장을 해제하려면 포인터를 삭제하기만 하면 됩니다.
모든 위젯에는 Qt Widgets Designer 의 신호 및 슬롯 편집 모드에서 해당 위젯의 멤버 함수와 함께 사용되는 기본 멤버 시트가 있습니다. 하지만 QDesignerMemberSheetExtension은 사용자 정의 멤버 시트 확장 기능을 생성하기 위한 인터페이스도 제공합니다.
경고: ` Qt Widgets Designer ` 는 신호 및 슬롯 편집 모드를 원활하게 지원하기 위해 `QDesignerMemberSheetExtension`을 사용합니다. 두 위젯 간의 연결이 요청될 때마다 ` Qt Widgets Designer `는 해당 위젯들의 멤버 시트 확장 기능을 조회합니다. 위젯에 구현된 멤버 시트 확장 기능이 있는 경우, 이 확장 기능이 기본 멤버 시트를 재정의합니다.
멤버 시트 확장 기능을 생성하려면, 확장 클래스가 QObject 와 QDesignerMemberSheetExtension을 모두 상속받아야 합니다. 그런 다음, 인터페이스를 구현하고 있으므로 Q_INTERFACES() 매크로를 사용하여 메타 객체 시스템에 해당 인터페이스가 인식되도록 해야 합니다:
class MyMemberSheetExtension : public QObject,
public QDesignerMemberSheetExtension
{
Q_OBJECT
Q_INTERFACES(QDesignerMemberSheetExtension)
public:
...
}이를 통해 ` Qt Widgets Designer `는 ` QObject ` 포인터만 사용하여 ` qobject_cast()`를 통해 지원되는 인터페이스를 조회할 수 있습니다.
Qt Widgets Designer 에서는 확장 기능이 필요할 때까지 생성되지 않습니다. 따라서 멤버 시트 확장 기능을 구현할 때는 QExtensionFactory, 즉 확장 기능의 인스턴스를 생성할 수 있는 클래스를 함께 생성하고, Qt Widgets Designer 의 extension manager 를 사용하여 이를 등록해야 합니다.
위젯의 멤버 시트 확장 기능이 호출되면, Qt Widgets Designer 의 extension manager 는 등록된 모든 팩토리를 순차적으로 검사하며, 각 팩토리에 대해 QExtensionFactory::createExtension()을 호출하여 해당 위젯의 멤버 시트 확장 기능을 생성할 수 있는 첫 번째 팩토리가 발견될 때까지 이 과정을 반복합니다. 이 팩토리는 이후 확장 기능의 인스턴스를 생성합니다. 해당 팩토리가 발견되지 않으면, Qt Widgets Designer 는 기본 멤버 시트를 사용합니다.
Qt Widgets Designer 에는 네 가지 유형의 확장 기능이 있습니다: QDesignerContainerExtension, QDesignerMemberSheetExtension, QDesignerPropertySheetExtension 및 QDesignerTaskMenuExtension. Qt Widgets Designer 의 동작은 요청된 확장 기능이 다중 페이지 컨테이너, 멤버 시트, 속성 시트 또는 작업 메뉴와 연관되어 있는지 여부에 관계없이 동일합니다.
QExtensionFactory 클래스는 표준 확장 기능 팩토리를 제공하며, 사용자 정의 확장 기능 팩토리를 위한 인터페이스로도 사용할 수 있습니다. 새로운 QExtensionFactory 를 생성하고 QExtensionFactory::createExtension() 함수를 재구현할 수 있습니다. 예를 들어:
QObject *ANewExtensionFactory::createExtension(QObject *object,
const QString &iid, QObject *parent) const
{
if (iid != Q_TYPEID(QDesignerMemberSheetExtension))
return 0;
if (MyCustomWidget *widget = qobject_cast<MyCustomWidget*>
(object))
return new MyMemberSheetExtension(widget, parent);
return 0;
}또는 기존 팩토리를 사용하여 QExtensionFactory::createExtension() 함수를 확장함으로써, 해당 팩토리가 멤버 시트 확장도 생성할 수 있도록 만들 수 있습니다. 예를 들어:
QObject *AGeneralExtensionFactory::createExtension(QObject *object,
const QString &iid, QObject *parent) const
{
MyCustomWidget *widget = qobject_cast<MyCustomWidget*>(object);
if (widget && (iid == Q_TYPEID(QDesignerTaskMenuExtension))) {
return new MyTaskMenuExtension(widget, parent);
} else if (widget && (iid == Q_TYPEID(QDesignerMemberSheetExtension))) {
return new MyMemberSheetExtension(widget, parent);
} else {
return 0;
}
}확장 클래스를 사용하는 전체 예제는 ‘작업 메뉴 확장’ 예제를 참조하십시오. 이 예제는 Qt Designer 용 사용자 정의 위젯 플러그인을 만드는 방법과, QDesignerTaskMenuExtension 클래스를 사용하여 Qt Widgets Designer 의 작업 메뉴에 사용자 정의 항목을 추가하는 방법을 보여줍니다.
QExtensionFactory, QExtensionManager 및 사용자 정의 위젯 확장 만들기문서를 참조하십시오 .
멤버 함수 문서
[constexpr noexcept default] QDesignerMemberSheetExtension::QDesignerMemberSheetExtension()
QDesignerMemberSheetExtension 의 인스턴스를 기본 생성합니다.
[delete] QDesignerMemberSheetExtension::QDesignerMemberSheetExtension(const QDesignerMemberSheetExtension &)
QDesignerMemberSheetExtension 의 인스턴스를 복사하여 생성합니다. 이 함수는 삭제되었습니다.
[delete] QDesignerMemberSheetExtension::QDesignerMemberSheetExtension(QDesignerMemberSheetExtension &&)
QDesignerMemberSheetExtension 의 인스턴스를 move-construct로 생성합니다. 이 함수는 삭제되었습니다.
[virtual constexpr noexcept default] QDesignerMemberSheetExtension::~QDesignerMemberSheetExtension()
멤버 시트 확장 기능을 삭제합니다.
[pure virtual] int QDesignerMemberSheetExtension::count() const
확장 기능에 포함된 멤버 함수의 개수를 반환합니다.
[pure virtual] QString QDesignerMemberSheetExtension::declaredInClass(int index) const
주어진 index 을 가진 멤버 함수가 선언된 클래스의 이름을 반환합니다.
indexOf()도 참조하십시오 .
[pure virtual] int QDesignerMemberSheetExtension::indexOf(const QString &name) const
주어진 ` name`로 지정된 멤버 함수의 인덱스를 반환합니다.
memberName()도 참조하십시오 .
[pure virtual] bool QDesignerMemberSheetExtension::inheritedFromWidget(int index) const
지정된 index 를 가진 멤버 함수가 QWidget 에서 상속된 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
indexOf()도 참조하십시오 .
[pure virtual] bool QDesignerMemberSheetExtension::isSignal(int index) const
지정된 index 를 가진 멤버 함수가 신호(signal)인 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다.
indexOf()도 참조하십시오 .
[pure virtual] bool QDesignerMemberSheetExtension::isSlot(int index) const
지정된 index 를 가진 멤버 함수가 슬롯인 경우 true를 반환하고, 그렇지 않은 경우 false를 반환합니다.
indexOf()도 참조하십시오 .
[pure virtual] bool QDesignerMemberSheetExtension::isVisible(int index) const
지정된 ` index `을 가진 멤버 함수가 ` Qt Widgets Designer`의 신호 및 슬롯 편집기에서 표시되는 경우 `true`를 반환하고, 그렇지 않은 경우 `false`를 반환합니다.
indexOf() 및 setVisible()도 참조하십시오 .
[pure virtual] QString QDesignerMemberSheetExtension::memberGroup(int index) const
주어진 ` index`에 대해 함수에 지정된 멤버 그룹의 이름을 반환합니다.
indexOf() 및 setMemberGroup()도 참조하십시오 .
[pure virtual] QString QDesignerMemberSheetExtension::memberName(int index) const
지정된 index 를 갖는 멤버 함수의 이름을 반환합니다.
indexOf()도 참조하십시오 .
[pure virtual] QList<QByteArray> QDesignerMemberSheetExtension::parameterNames(int index) const
주어진 index 를 갖는 멤버 함수의 매개변수 이름을 QByteArray 리스트 형태로 반환합니다.
indexOf() 및 parameterTypes()도 참조하십시오 .
[pure virtual] QList<QByteArray> QDesignerMemberSheetExtension::parameterTypes(int index) const
주어진 index 을 가진 멤버 함수의 매개변수 유형을 QByteArray 리스트 형태로 반환합니다.
indexOf() 및 parameterNames()도 참조하십시오 .
[pure virtual] void QDesignerMemberSheetExtension::setMemberGroup(int index, const QString &group)
지정된 index 를 가진 멤버 함수의 멤버 그룹을 group 로 설정합니다.
indexOf() 및 memberGroup()도 참조하십시오 .
[pure virtual] void QDesignerMemberSheetExtension::setVisible(int index, bool visible)
visible 가 true인 경우, 지정된 index 을 갖는 멤버 함수는 Qt Widgets Designer 의 시그널 및 슬롯 편집 모드에서 표시되며, 그렇지 않은 경우 해당 멤버 함수는 숨겨집니다.
indexOf() 및 isVisible()도 참조하십시오 .
[pure virtual] QString QDesignerMemberSheetExtension::signature(int index) const
지정된 index 를 가진 멤버 함수의 시그니처를 반환합니다.
indexOf()도 참조하십시오 .
[delete] QDesignerMemberSheetExtension &QDesignerMemberSheetExtension::operator=(QDesignerMemberSheetExtension &&)
other 를 이 QDesignerMemberSheetExtension 인스턴스에 할당합니다. 이 함수는 삭제되었습니다.
[delete] QDesignerMemberSheetExtension &QDesignerMemberSheetExtension::operator=(const QDesignerMemberSheetExtension &)
other 를 이 QDesignerMemberSheetExtension 인스턴스에 복사-할당합니다. 이 함수는 삭제됩니다.
© 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.