사용자 정의 위젯 사용 Qt Widgets Designer
Qt Widgets Designer 는 확장 가능한 플러그인 메커니즘을 통해 사용자 정의 위젯을 표시할 수 있으며, 이를 통해 사용자와 제3자가 디자인 가능한 위젯의 범위를 확장할 수 있습니다. 또는, 유사한 API를 제공하는 위젯 클래스의 자리 표시자로 기존 위젯을 사용할 수도 있습니다.
사용자 정의 위젯 처리
Qt Widgets Designer 는 모든 표준 Qt Widgets를 지원하지만, 여러 가지 이유로 일부 특수한 Widgets는 표준으로 제공되지 않을 수 있습니다:
- 사용자 인터페이스를 디자인하는 시점에 사용자 정의 위젯이 제공되지 않을 수 있습니다.
- 사용자 정의 위젯이 특정 플랫폼에 국한될 수 있으며, 디자이너가 최종 사용자와는 다른 플랫폼에서 사용자 인터페이스를 개발하고 있을 수 있습니다.
- 사용자 정의 위젯의 소스 코드를 구할 수 없거나, 사용자 인터페이스 설계자가 기술적 이유가 아닌 다른 이유로 해당 위젯을 사용할 수 없는 경우가 있습니다.
위와 같은 상황에서도 애플리케이션에서 사용자 정의 위젯을 사용할 수 있도록 양식을 설계하는 것은 여전히 가능합니다. 이를 위해 Qt Widgets Designer 의 위젯 승격 기능을 활용할 수 있습니다.
사용자 정의 위젯의 소스 코드를 사용할 수 있는 그 외의 모든 경우에는, 해당 사용자 정의 위젯을 Qt Widgets Designer 에서 사용할 수 있도록 조정할 수 있습니다.
위젯 승격

일부 폼을 디자인해야 하지만 디자이너가 특정 사용자 정의 위젯을 사용할 수 없는 경우, 누락된 위젯을 대신할 유사한 위젯으로 대체할 수 있습니다. 예를 들어, 사용자 정의 푸시 버튼 클래스인 ` MyPushButton`의 인스턴스를 ` QPushButton `의 인스턴스로 표현하고, 이를 ` MyPushButton `로 승격시켜 uic가 이 누락된 클래스에 대한 적절한 코드를 생성하도록 할 수 있습니다.
플레이스홀더로 사용할 위젯을 선택할 때는 누락된 위젯의 API와 표준 Qt Widgets의 API를 비교해 보는 것이 유용합니다. 표준 클래스를 상속한 특수화된 위젯의 경우, 플레이스홀더로 선택하기에 가장 적합한 것은 사용자 정의 위젯의 기본 클래스입니다. 예를 들어, QSlider 는 QSlider 의 특수화된 하위 클래스에 사용될 수 있습니다.
표준 Qt 위젯과 공통 API를 공유하지 않는 특수화된 위젯의 경우, Qt Widgets Designer 에서 사용할 수 있도록 사용자 정의 위젯을 수정하는 것을 고려해 볼 가치가 있습니다. 이것이 불가능하다면, QWidget 는 모든 위젯에 대한 최소 공통 분모이므로 플레이스홀더 위젯으로 가장 확실한 선택입니다.
플레이스홀더를 추가하려면 적절한 기본 클래스의 객체를 선택하고 폼의 컨텍스트 메뉴에서 ‘Promote to...’를 선택하십시오. 대화 상자 하단에 클래스 이름과 헤더 파일을 입력한 후 ‘Add’를 선택하십시오. 이제 플레이스홀더 클래스가 기본 클래스와 함께 상단 목록에 표시됩니다. '승격' 버튼을 클릭하여 이 선택을 확정합니다.
이제 기본 클래스의 객체에서 양식 컨텍스트 메뉴를 열면 '승격' 하위 메뉴에 자리 표시자 클래스가 표시되어, 해당 클래스로 객체를 편리하게 승격할 수 있습니다.
승격된 위젯은 폼의 컨텍스트 메뉴에서 ‘~로 강등’을 선택하여 기본 클래스로 되돌릴 수 있습니다.
사용자 정의 커스텀 위젯
사용자 정의 위젯을 Qt Widgets Designer 에서 사용하도록 조정할 수 있으며, 이를 통해 디자이너는 자리 표시자 위젯 대신 애플리케이션에서 실제로 사용될 위젯을 사용하여 사용자 인터페이스를 구성할 수 있습니다. 사용자 정의 위젯 플러그인을 만드는 과정은 이 설명서의 “ Qt Widgets Designer 용 사용자 정의 위젯 만들기” 장에 설명되어 있습니다.
이러한 방식으로 생성된 플러그인을 사용하려면, 해당 플러그인이 Qt Widgets Designer 가 플러그인을 검색하는 경로에 위치해 있는지 확인해야 합니다. 일반적으로 $QTDIR/plugins/designer 에 저장된 플러그인은 Qt Widgets Designer 가 시작될 때 로드됩니다. 플러그인 빌드 및 설치에 대한 자세한 내용은 여기에서 확인할 수 있습니다. 또한 플러그인 생성 방법에 대한 정보는 ‘플러그인 HOWTO’ 문서를 참조하십시오.
© 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.