Qt Widgets
이 Qt Widgets Module 는 고전적인 데스크톱 스타일의 사용자 인터페이스를 생성하기 위한 일련의 UI 요소를 제공합니다. 위젯 사용에 대한 자세한 내용은 사용자 인터페이스 개요를 참조하십시오.
위젯
위젯은 Qt에서 사용자 인터페이스를 생성하는 데 사용되는 핵심 요소입니다. 위젯은 데이터와 상태 정보를 표시하고, 사용자 입력을 수신하며, 함께 그룹화되어야 하는 다른 위젯들을 담을 수 있는 컨테이너 역할을 합니다. 부모 위젯에 포함되지 않은 위젯을 ‘창(window)’이라고 합니다.

QWidget 클래스는 화면에 렌더링하고 사용자 입력 이벤트를 처리하는 기본 기능을 제공합니다. Qt가 제공하는 모든 UI 요소는 QWidget 의 서브클래스이거나 QWidget 서브클래스와 연계하여 사용됩니다. 사용자 정의 위젯을 만들려면 QWidget 또는 적절한 서브클래스를 상속받아 가상 이벤트 핸들러를 재구현하십시오.
스타일
스타일은 위젯을 대신하여 그리기를 수행하며 Qt GUI의 모양과 느낌을 캡슐화합니다. Qt Widgets는 QStyle 클래스를 사용하여 거의 모든 그리기 작업을 수행함으로써, 해당 네이티브 위젯과 정확히 동일한 모양을 유지합니다.
|
|
|
Qt 스타일 시트는 CSS와 유사한 규칙을 사용하여 위젯의 외관을 사용자 정의합니다. ‘ Qt Widgets 에 대한 스타일링 접근 방식’에서는 스타일, StyleKit 또는 스타일 시트를 언제 사용해야 하는지 설명합니다.
레이아웃
레이아웃은 컨테이너 내의 자식 위젯을 자동으로 배열하는 우아하고 유연한 방법입니다. 각 위젯은 ` sizeHint ` 및 ` sizePolicy ` 속성을 통해 레이아웃에 필요한 크기를 알리고, 레이아웃은 이에 따라 사용 가능한 공간을 배분합니다.
|
|
Qt Widgets Designer 는 레이아웃 내에서 위젯을 대화형으로 생성하고 배치하는 데 유용한 도구입니다.
모델/뷰 클래스
모델/뷰 아키텍처는 사용자에게 데이터가 표시되는 방식을 관리하는 클래스를 제공합니다. 목록과 테이블을 사용하는 데이터 기반 애플리케이션은 모델, 뷰 및 델리게이트를 사용하여 데이터와 뷰를 분리하는 구조로 되어 있습니다.

그래픽 뷰
그래픽 뷰 프레임워크는 수많은 사용자 정의 2D 그래픽 항목을 관리하고 상호 작용하기 위한 것이며, 확대/축소 및 회전 기능을 지원하여 항목을 시각화하는 뷰 위젯입니다.

모듈 사용
Qt 모듈의 C++ API를 사용하려면 모듈 라이브러리를 직접 또는 다른 종속성을 통해 링크해야 합니다. CMake 및 qmake를 비롯한 여러 빌드 도구가 이를 전용으로 지원합니다.
CMake를 사용한 빌드
find_package() 명령을 사용하여 Qt6 패키지 내에서 필요한 모듈 구성 요소를 찾으십시오.
find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)자세한 내용은 ‘CMake를 사용한 빌드’ 개요를 참조하십시오.
qmake를 사용한 빌드
qmake를 사용하여 모듈을 빌드하도록 구성하려면, 프로젝트의 .pro 파일에서 QT 변수의 값으로 모듈을 추가하십시오:
QT += widgets보안 고려 사항
여러 Qt Widgets 클래스는 애플리케이션이 어떤 소스에서든 제공할 수 있는 데이터를 역직렬화하거나 구문 분석하며, Qt는 해당 데이터의 출처를 확인할 수 없습니다. 특히 다음 사항에 유의하십시오:
- QHeaderView::restoreState() 버전이 지정된 바이너리 상태 블롭을 역직렬화합니다.
- QFileDialog::restoreState() 마찬가지로, QHeaderView 상태 블롭을 포함하는 바이너리 상태 블롭을 역직렬화합니다.
- QMainWindow::restoreState() 재귀적으로 중첩된 툴바 및 도크 위젯 레이아웃을 설명하는 바이너리 상태 블롭을 역직렬화합니다.
- QSplitter::restoreState() 스플리터의 크기와 방향을 설명하는 바이너리 상태 블롭을 역직렬화합니다.
- Qt 스타일 시트는 `
url()` 함수를 통해 임의의 로컬 파일을 참조하고 불러올 수 있습니다.
이러한 API에는 애플리케이션이 이전에 생성하여 직접 저장한 데이터(일반적으로 QSettings 를 통해)나, 그 외 애플리케이션이 완전히 제어할 수 있는 데이터만 전달하십시오.
문서 및 가이드
- 위젯 튜토리얼
- 시작하기 프로그래밍 Qt Widgets
- Qt Creator: 튜토리얼: Qt Widgets 애플리케이션
- Qt Extension for Visual Studio Code: 튜토리얼: Qt Widgets 애플리케이션
- 모델/뷰 튜토리얼
- 스타일링 기법 Qt Widgets
예제
API 참조
모듈의 발전 과정
Qt Widgets 에는 Qt 6 시리즈를 위해 모듈 API 및 기능에 적용된 주요변경 사항이 나열되어 있습니다.
라이선스
Qt Widgets 모듈은 The Qt Company의 상용 라이선스에 따라 제공됩니다. 또한, GNU Lesser General Public License 버전 3 또는 GNU General Public License 버전 2와 같은 자유 소프트웨어 라이선스 하에서도 사용할 수 있습니다. 자세한 내용은 Qt 라이선싱을 참조하십시오.
© 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.




