사용자 정의 위젯 플러그인용 Qt Widgets Designer
사용자 정의 위젯 플러그인 만들기
Qt Widgets Designer 용 사용자 정의 위젯 플러그인을 구현할 때는 사용자 정의 위젯을 Qt Widgets Designer 에 노출하기 위해 QDesignerCustomWidgetInterface 를 상속해야 합니다. 단일 사용자 정의 위젯 플러그인은 별도의 라이브러리로 빌드됩니다. 여러 사용자 정의 위젯 플러그인을 동일한 라이브러리에 포함하려면 추가로 QDesignerCustomWidgetCollectionInterface 를 상속해야 합니다.
Qt Widgets Designer 의 작업 공간 내에서 사용자 정의 위젯 플러그인이 예상되는 동작과 기능을 제공하도록 하려면, 관련 확장 클래스를 상속받아야 합니다:
QDesignerContainerExtension 클래스를 사용하면 사용자 정의 다중 페이지 컨테이너에 페이지를 추가할 수 있습니다. QDesignerTaskMenuExtension 클래스를 사용하면 Qt Widgets Designer 의 작업 메뉴에 사용자 정의 메뉴 항목을 추가할 수 있습니다. QDesignerMemberSheetExtension 클래스를 사용하면 Qt Widgets Designer 의 신호 및 슬롯 편집 모드를 통해 연결을 구성할 때 표시되는 위젯의 멤버 함수를 조작할 수 있습니다. 마지막으로, QDesignerPropertySheetExtension 클래스를 사용하면 Qt Widgets Designer 의 속성 편집기에 표시되는 위젯의 속성을 조작할 수 있습니다.
Qt Widgets Designer 구성 요소 간의 관계를 보여주는 다이어그램" src="images/qtdesignerextensions.png" title="Qt Widgets Designer 구성 요소 간의 관계를 보여주는 다이어그램"/>
Qt Widgets Designer 에서는 확장 기능이 필요할 때까지 생성되지 않습니다. 따라서 확장 기능을 구현할 때는 QExtensionFactory 를 상속받은 서브클래스를 만들어야 합니다. 즉, 확장 기능의 인스턴스를 생성할 수 있는 클래스를 만들어야 합니다. 또한, Qt Widgets Designer 의 확장 관리자에 해당 팩토리를 등록해야 합니다. 확장 관리자는 필요에 따라 확장 기능의 생성을 제어하며, QDesignerFormEditorInterface 및 QExtensionManager 를 통해 접근할 수 있습니다.
확장 기능을 사용하여 사용자 정의 위젯 플러그인을 만드는 전체 예제는 ‘작업 메뉴 확장(Task Menu Extension )’ 또는 ‘컨테이너 확장(Container Extension )’ 예제를 참조하십시오.
Qt Widgets Designer 컴포넌트에 대한 액세스 가져오기
이 섹션에서 언급된 클래스의 목적은 Qt Widgets Designer 의 컴포넌트, 관리자 및 작업 공간에 대한 액세스를 제공하는 것이며, 직접 인스턴스화되도록 의도된 것은 아닙니다.
Qt Widgets Designer xml-ph-0000@deepl.internal는 여러 구성 요소로 이루어져 있습니다. 여기에는 작업 편집기, 속성 편집기, 위젯 상자 및 객체 검사기가 있으며, 이를 작업 공간에서 볼 수 있습니다.
Qt Widgets Designer 편집기의 UI를 보여주는 스크린샷" src="images/qtdesignerscreenshot.png" title="Qt Widgets Designer 편집기의 UI를 보여주는 스크린샷"/>
Qt Widgets Designer 또한 백그라운드에서 작동하는 객체가 있는데, 이 객체는 Qt Widgets Designer 의 모든 컴포넌트를 일관된 애플리케이션으로 통합하는 로직을 포함하고 있습니다. QDesignerFormEditorInterface 를 사용하여 이 객체에 접근함으로써 Qt Widgets Designer 의 컴포넌트에 대한 인터페이스를 가져올 수 있습니다:
- QDesignerActionEditorInterface
- QDesignerObjectInspectorInterface
- QDesignerPropertyEditorInterface
- QDesignerWidgetBoxInterface
또한, QDesignerFormEditorInterface 를 사용하여 Qt Widgets Designer 의 확장 관리자(QExtensionManager) 및 양식 창 관리자(QDesignerFormWindowManagerInterface)에 대한 인터페이스를 가져올 수 있습니다. 확장 관리자는 필요에 따라 확장의 생성을 제어하는 반면, 양식 창 관리자는 Qt Widgets Designer 의 작업 공간에 표시되는 양식 창을 제어합니다.
Qt Widgets Designer 의 폼 창 관리자(QDesignerFormWindowManagerInterface)에 대한 인터페이스를 확보하면, Qt Widgets Designer 의 작업 공간에 현재 표시된 모든 폼 창에 접근할 수 있습니다: QDesignerFormWindowInterface 클래스를 사용하면 폼 창을 조회하고 조작할 수 있으며, 폼 창의 커서에 대한 인터페이스도 제공합니다. QDesignerFormWindowCursorInterface 는 주어진 폼 창의 위젯 선택 항목을 조회 및 수정할 수 있게 해주고, 나아가 해당 폼에 속한 모든 위젯의 속성을 수정할 수 있게 해주는 편의 클래스입니다.
실행 시 사용자 인터페이스 생성
QtDesigner 모듈에는 Qt Widgets Designer 를 사용하여 생성된 UI 파일을 기반으로 런타임에 사용자 인터페이스를 동적으로 생성하는 메커니즘을 제공하는 QFormBuilder 클래스가 포함되어 있습니다. 이 클래스는 일반적으로 Qt Widgets Designer 를 임베드하는 사용자 정의 컴포넌트 및 애플리케이션에서 사용됩니다. 런타임에 사용자 인터페이스를 동적으로 생성해야 하는 독립형 애플리케이션은 QtUiTools 모듈에 있는 QUiLoader 클래스를 사용합니다.
QUiLoader 를 사용한 전체 예제는 Calculator Builder 예제를 참조하십시오.
© 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.