이 페이지에서

이모지 알아보기 Qt Widgets Designer

Qt Widgets Designer 편집기의 사용자 인터페이스(UI)를 보여주는 스크린샷

디자이너 실행하기

Qt를 설치한 후에는 개발 호스트에서 다른 응용 프로그램과 동일한 방식으로 Qt Widgets Designer 를 실행할 수 있습니다. 또한 Qt Creator 에서 직접 Qt Widgets Designer 를 실행할 수도 있습니다. Qt Creator 를 실행하면 모든 .ui 파일이 통합 개발 환경( Qt Widgets Designer)에서 디자인 모드로 자동으로 열립니다.

일반적으로 통합된 Qt Widgets Designer 는 독립 실행형 Qt Widgets Designer 과 동일한 기능을 제공합니다. 두 버전의 차이점에 대한 자세한 내용은 Qt Creator 설명서를 참조하십시오.

Qt Creator 의 디자인 모드에 들어가지 않을 정도로 큰 폼이 있는 경우, 독립 실행형 Qt Widgets Designer 에서 열 수 있습니다.

사용자 인터페이스

독립 실행형 애플리케이션으로 사용할 경우, Qt Widgets Designer 의 사용자 인터페이스는 다중 창 사용자 인터페이스(기본 모드)로 구성하거나 도킹된 창 모드로 사용할 수 있습니다. 통합 개발 환경(IDE) 내에서 사용할 때는 다중 창 사용자 인터페이스만 사용할 수 있습니다. '편집' 메뉴의 '환경 설정 ' 대화 상자에서 모드를 전환할 수 있습니다.

다중 창 모드에서는 작업 스타일에 맞게 각 도구 창을 배치할 수 있습니다. 메인 창은 메뉴 막대, 도구 모음, 그리고 사용자 인터페이스를 만드는 데 사용할 수 있는 위젯이 포함된 위젯 상자로 구성됩니다.

창에 추가할 수 있는 모든 구성 요소가 표시된 <span translate=Qt Widgets Designer의 스크린샷" src="images/designer-main-window.png" title="창에 추가할 수 있는 모든 구성 요소가 표시된 Qt Widgets Designer의 스크린샷"/>Qt Widgets Designer의 메인 창

메뉴 막대에는 양식 관리, 클립보드 사용, 애플리케이션별 도움말 이용을 위한 모든 표준 작업이 제공됩니다. 또한 메뉴 막대를 통해 현재 편집 모드, 도구 창 및 사용 중인 양식에 접근할 수 있습니다.

도구 모음에는 양식을 편집할 때 사용되는 일반적인 작업들이 표시됩니다. 이러한 작업들은 메인 메뉴를 통해서도 사용할 수 있습니다.

위젯 상자에는 컴포넌트를 디자인하는 데 사용되는 일반적인 위젯과 레이아웃이 제공됩니다. 이들은 용도나 기능을 반영하여 카테고리별로 그룹화되어 있습니다.

Qt Widgets Designer 의 대부분의 기능은 메뉴 바, 도구 모음 또는 위젯 상자를 통해 이용할 수 있습니다. 일부 기능은 양식 창에서 열 수 있는 컨텍스트 메뉴를 통해서도 사용할 수 있습니다. 대부분의 플랫폼에서 마우스 오른쪽 버튼을 클릭하면 컨텍스트 메뉴가 열립니다.

<span translate=Qt Widgets Designer의 모든 위젯 구성 요소를 보여주는 스크린샷" src="images/designer-widget-box.png" title="Qt Widgets Designer의 모든 위젯 구성 요소를 보여주는 스크린샷"/>Qt Widgets Designer'의 위젯 상자

위젯 상자에는 폼에서 사용자 인터페이스를 만드는 데 사용할 수 있는 표준 Qt Widgets, 레이아웃 및 기타 객체들이 제공됩니다. 위젯 상자의 각 카테고리에는 용도가 비슷하거나 관련 기능이 있는 Widgets가 포함되어 있습니다.

카테고리 레이블 옆에 있는 핸들을 클릭하면 해당 카테고리에 사용 가능한 모든 객체를 표시할 수 있습니다. 위젯 편집 모드에서는 위젯 상자에서 적절한 항목을 폼으로 드래그하여 필요한 위치에 놓음으로써 폼에 객체를 추가할 수 있습니다.

Qt Widgets Designer 스크래치 패드 기능을 통해 자주 사용하는 객체를 별도의 카테고리에 모아둘 수 있습니다. 스크래치 패드 카테고리에는 양식에 현재 표시된 위젯을 양식에서 드래그하여 위젯 상자로 드롭함으로써 채울 수 있습니다. 이러한 위젯은 다른 위젯과 동일한 방식으로 사용할 수 있을 뿐만 아니라, 하위 위젯을 포함할 수도 있습니다. 위젯 위에 마우스를 올려 컨텍스트 메뉴를 열면 이름을 변경하거나 스크래치 패드에서 제거할 수 있습니다.

Qt의 레이아웃 개념

레이아웃은 사용자 인터페이스를 구성하는 요소들을 배열하고 관리하는 데 사용됩니다. Qt는 레이아웃을 자동으로 처리하기 위한 여러 클래스( QHBoxLayout, QVBoxLayout, QGridLayout, QFormLayout)를 제공합니다. 이러한 클래스는 위젯의 레이아웃을 자동으로 구성하는 문제를 해결하여, 예측 가능한 방식으로 동작하는 사용자 인터페이스를 제공합니다. 다행히도 Qt Widgets Designer 를 사용하여 위젯을 배치하는 데 레이아웃 클래스에 대한 지식이 반드시 필요한 것은 아닙니다. 대신, 컨텍스트 메뉴에서 ‘가로로 배치( Lay Out Horizontally)’, ‘그리드로 배치(Lay Out in a Grid)’ 등의 옵션 중 하나를 선택하면 됩니다.

각 Qt 위젯에는 ‘ sizeHint()’로 알려진 권장 크기가 있습니다. 레이아웃 관리자는 위젯의 크기를 이 크기 힌트에 맞추도록 조정하려고 시도합니다. 경우에 따라 별도의 크기를 지정할 필요가 없는 경우도 있습니다. 예를 들어, QLineEdit 의 높이는 글꼴 크기와 스타일에 따라 항상 고정된 값을 가집니다. 반면, QLineEdit 의 너비나 항목 뷰 위젯(item view widgets)의 너비 및 높이처럼 크기를 변경해야 하는 경우도 있습니다. 이때 위젯 크기 제약 조건인 minimumSize 및 maximumSize 제약 조건이 적용됩니다. 이러한 속성은 속성 편집기에서 설정할 수 있습니다. 예를 들어, 기본 sizeHint()을 재정의하려면 minimumSize 와 maximumSize 를 동일한 값으로 설정하기만 하면 됩니다. 또는 현재 크기를 크기 제약 조건 값으로 사용하려면 위젯의 컨텍스트 메뉴에서 ‘Size Constraint’ 옵션 중 하나를 선택하면 됩니다. 그러면 레이아웃이 해당 제약 조건이 충족되도록 보장합니다. 코드를 통해 위젯의 크기를 제어하려면, 코드 내에서 ` sizeHint()` 메서드를 재구현하면 됩니다.

아래 스크린샷은 그리드를 사용하여 디자인된 기본 사용자 인터페이스의 구성을 보여줍니다. 스크린샷의 좌표는 그리드 내 각 위젯의 위치를 나타냅니다.

모든 위젯 구성 요소와 그 위치를 강조 표시한 주소록 애플리케이션의 스크린샷

참고: 그리드내부에서 QPushButton 객체들은 실제로 중첩되어 있습니다. 오른쪽의 버튼들은 먼저 QVBoxLayout 에 배치되고, 하단의 버튼들은 먼저 QHBoxLayout 에 배치됩니다. 마지막으로, 이들은 QGridLayout 의 (1,2) 및 (2,1) 좌표에 배치됩니다.

이를 시각화해 보자면, 레이아웃을 가능한 한 작게 줄어들면서 위젯들을 깔끔하게 배열하고, 동시에 사용 가능한 공간을 최대한 활용하려고 하는 상자로 상상해 보십시오.

Qt의 레이아웃은 다음과 같은 경우에 유용합니다:

  1. 다양한 창 크기에 맞춰 사용자 인터페이스의 크기를 조정할 때.
  2. 다양한 현지화 환경에 맞춰 사용자 인터페이스 내 요소의 크기를 조정할 때.
  3. 다양한 플랫폼의 레이아웃 지침에 따라 요소를 배치할 때.

따라서 더 이상 다양한 플랫폼, 설정 및 언어에 맞춰 위젯을 재배치하는 것에 대해 걱정할 필요가 없습니다.

아래 예시는 다양한 현지화가 사용자 인터페이스에 어떤 영향을 미칠 수 있는지 보여줍니다. 현지화 과정에서 더 긴 텍스트 문자열을 표시하기 위해 더 많은 공간이 필요할 경우, Qt 레이아웃은 이를 수용하도록 자동으로 크기를 조정하며, 동시에 사용자 인터페이스가 보기 좋게 유지되고 플랫폼 가이드라인을 준수하도록 보장합니다.

영어로 된 대화 상자프랑스어 대화 상자

영어로 된 주소록 예시가 담긴 스크린샷

프랑스어로 된 주소록 예시를 보여주는 스크린샷

위젯 레이아웃을 구성하는 과정은 위젯 크기 제약 조건을 가능한 한 최소화하면서 레이아웃 계층 구조를 생성하는 것으로 이루어집니다.

Qt의 레이아웃 클래스에 대한 보다 기술적인 관점을 원하시면, ‘레이아웃 관리 ( Layout Management)’ 문서를 참조하십시오.

© 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.