Qt Quick Controls QML Types

Qt Quick Controls 는 사용자 인터페이스 생성을 위한 QML 유형을 제공합니다. 이러한 QML 유형은 다음과 함께 작동합니다. Qt QuickQt Quick 레이아웃과 함께 작동합니다.

Qt Quick Controls QML 유형은 .qml 파일에서 다음 import 문을 사용하여 애플리케이션으로 가져올 수 있습니다:

import QtQuick.Controls

QML 유형

AbstractButton

버튼에 공통된 기능을 제공하는 추상 기본 유형

Action

추상 사용자 인터페이스 동작

ActionGroup

동작을 함께 그룹화

ApplicationWindow

머리글 및 바닥글을 지원하는 스타일이 지정된 최상위 창

BusyIndicator

예를 들어 콘텐츠가 로드되는 동안의 백그라운드 활동 표시

Button

명령을 수행하거나 질문에 답하기 위해 클릭할 수 있는 푸시 버튼

ButtonGroup

상호 배타적인 확인 가능한 버튼 그룹

Calendar

캘린더 네임스페이스

CalendarModel

캘린더 모델

CheckBox

켜거나 끌 수 있는 확인 버튼

CheckDelegate

켜거나 끌 수 있는 확인 표시기가 있는 항목 델리게이트

ComboBox

옵션 선택을 위한 결합 버튼 및 팝업 목록

Container

컨테이너에 공통된 기능을 제공하는 추상적 기본 유형

Control

모든 컨트롤에 공통된 기능을 제공하는 추상 기본 유형

DayOfWeekRow

한 주의 요일에 대한 이름 행

DelayButton

충분히 길게 누르면 트리거되는 확인 버튼

Dial

회전하여 값을 설정하는 원형 다이얼

Dialog

사용자와의 단기적인 상호 작용에 사용되는 표준 버튼 및 제목이 있는 팝업 대화 상자

DialogButtonBox

대화 상자에 사용되는 버튼 상자

Drawer

스와이프 제스처로 열고 닫을 수 있는 측면 패널

Frame

논리적 컨트롤 그룹을 위한 시각적 프레임

GroupBox

논리적 컨트롤 그룹에 대한 시각적 프레임 및 제목

HorizontalHeaderView

테이블 뷰와 함께 제공되는 가로 헤더 뷰 제공

ItemDelegate

다양한 뷰 및 컨트롤에서 사용할 수 있는 기본 항목 델리게이트

Label

상속된 글꼴을 사용한 스타일이 지정된 텍스트 레이블

Menu

컨텍스트 메뉴 또는 팝업 메뉴로 사용할 수 있는 팝업

MenuBar

창 메뉴 모음 제공

MenuBarItem

메뉴 모음 내에 드롭다운 메뉴 표시

MenuItem

메뉴 내에 항목 표시

MenuSeparator

메뉴의 항목 그룹을 인접한 항목과 분리합니다.

MonthGrid

달력 월의 날짜 그리드

Overlay

팝업을 위한 창 오버레이

Page

머리글 및 바닥글을 지원하는 스타일이 지정된 페이지 컨트롤

PageIndicator

현재 활성화된 페이지 표시

Pane

애플리케이션 스타일 및 테마와 일치하는 배경 제공

Popup

팝업과 유사한 사용자 인터페이스 컨트롤의 기본 유형

ProgressBar

작업 진행률 표시

RadioButton

켜거나 끌 수 있는 전용 라디오 버튼

RadioDelegate

켜거나 끌 수 있는 라디오 표시기가 있는 전용 항목 델리게이트

RangeSlider

트랙을 따라 두 개의 핸들을 밀어서 값의 범위를 선택하는 데 사용됩니다.

RoundButton

사용자가 클릭할 수 있는 둥근 모서리가 있는 푸시 버튼 컨트롤

ScrollBar

수직 또는 수평 대화형 스크롤 막대

ScrollIndicator

수직 또는 수평 비대화형 스크롤 표시기

ScrollView

스크롤 가능한 보기

SelectionRectangle

테이블 뷰 내에서 테이블 셀을 선택하는 데 사용됩니다.

Slider

트랙을 따라 핸들을 밀어서 값을 선택하는 데 사용됩니다.

SpinBox

사용자가 사전 설정된 값 세트에서 선택할 수 있습니다.

SplitHandle

SplitView 핸들에 대한 첨부 프로퍼티 제공

SplitView

각 항목 사이에 드래그 가능한 분할기를 사용하여 항목을 배치합니다.

StackView

스택 기반 탐색 모델 제공

SwipeDelegate

스와이프 가능한 항목 델리게이트

SwipeView

사용자가 옆으로 스와이프하여 페이지를 탐색할 수 있습니다.

Switch

켜거나 끌 수 있는 버튼

SwitchDelegate

켜거나 끌 수 있는 스위치 표시기가 있는 항목 델리게이트

TabBar

사용자가 다른 보기 또는 하위 작업 간에 전환할 수 있습니다.

TabButton

탭 막대에 적합한 모양을 가진 버튼

TextArea

여러 줄 텍스트 입력 영역

TextField

한 줄 텍스트 입력 필드

ToolBar

상황에 맞는 컨트롤을 위한 컨테이너

ToolButton

도구 모음에 적합한 모양의 버튼

ToolSeparator

도구 모음의 항목 그룹을 인접한 항목과 분리합니다.

ToolTip

모든 컨트롤에 대한 도구 팁 제공

TreeViewDelegate

트리뷰에 할당할 수 있는 델리게이트

Tumbler

선택할 수 있는 항목의 회전 가능한 휠

VerticalHeaderView

테이블 뷰와 함께 세로 헤더 보기 제공

WeekNumberColumn

주 번호 열

속성 선언에서 Qt Quick Controls 유형 사용

에서 언급했듯이 Qt Quick Templates 2 QML Types에서 언급했듯이 Qt Quick Controls 의 각 유형은 C++ "템플릿" 유형으로 뒷받침됩니다. 이러한 유형은 컨트롤의 로직과 동작을 시각적으로 구현한 것입니다.

예를 들어 Menu 유형의 API 및 동작은 Qt Quick 템플릿의 C++ 유형에 의해 정의됩니다. 메뉴를 제공하려는 각 스타일은 Menu.qml을 사용할 수 있어야 하며 해당 파일의 루트 항목은 Qt Quick 템플릿의 메뉴여야 합니다. QtQuick .Controls를 가져와서 QML로 메뉴를 만들면 실제로 얻는 유형은 스타일의 Menu.qml에 정의된 QML 메뉴입니다.

속성 선언에서 컨트롤을 유형으로 사용하려면 Qt Quick 템플릿에서 해당 유형을 사용해야 합니다. 예를 들어 팝업을 여는 버튼인 PopupOpener 컴포넌트가 있다고 가정해 보겠습니다:

// PopupButton.qml
import QtQuick.Controls

Button {
    required property Popup popup

    onClicked: popup.open()
}

// main.qml
PopupButton {
    popup: saveChangesDialog
}

Dialog {
    id: saveChangesDialog

    // ...
}

이 코드를 실행하면 오류가 발생합니다:

Unable to assign Dialog_QMLTYPE to Popup_QMLTYPE

이는 상속 계층 구조 때문입니다:

Popup (C++ type in QtQuick.Templates)
│   └── Popup (QML type in QtQuick.Controls)
└── Dialog (C++ type in QtQuick.Templates)
    └── Dialog (QML type in QtQuick.Controls)

QtQuick.Controls 의 대화 상자는 QtQuick.Controls 의 팝업에서 파생되지 않고 QtQuick.Templates 에서 파생됩니다.

대신 Qt Quick 템플릿의 팝업을 속성 유형으로 사용하세요:

// PopupButton.qml
import QtQuick.Controls
import QtQuick.Templates as T

Button {
    required property T.Popup popup

    onClicked: popup.open()
}

Qt Quick Controls 모듈에 대한 자세한 내용은 Qt Quick Controls 모듈 문서를 참조하세요.

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