이 페이지에서

머티리얼 스타일

머티리얼 스타일은 Google 머티리얼 디자인 가이드라인을 기반으로 합니다. 더 보기...

임포트 문: import QtQuick.Controls.Material
지원 버전: Qt 5.7부터

연결된 속성

연관된 메서드

  • color color(열거형 predefined, 열거형 shade)

상세 설명

Material 스타일은 Google Material Design 가이드라인을 기반으로 합니다. 이를 통해 다양한 플랫폼과 기기 크기 전반에 걸쳐 일관된 사용자 경험을 제공할 수 있습니다.

머티리얼 스타일 라이트 테마의 컨트롤 갤러리

Material 스타일의 밝은 테마입니다.

머티리얼 스타일 다크 테마의 컨트롤 갤러리

머티리얼 스타일의 다크 테마입니다.

머티리얼 스타일로 애플리케이션을 실행하려면 ‘ Qt Quick Controls 에서 스타일 사용하기’를 참조하십시오.

참고: 머티리얼스타일은 안드로이드의 기본 스타일이 아닙니다. 머티리얼 스타일은 Google 머티리얼 디자인 가이드라인을 따르는 100% 크로스 플랫폼 Qt Quick Controls 스타일 구현입니다. 이 스타일은 모든 플랫폼에서 실행되며, 어디서나 거의 동일하게 표시됩니다. 사용 가능한 시스템 글꼴 및 글꼴 렌더링 엔진의 차이로 인해 사소한 차이가 발생할 수 있습니다.

참고: 머티리얼 디자인 가이드라인은 시간이 지남에 따라변경되므로 , 이 스타일은 가이드라인과의 일관성을 유지하기 위해 패딩이나 글꼴 값 등을 변경할 수 있습니다.

사용자 지정

머티리얼 스타일은 여러 가지 사용자 정의 가능한 속성을 지원합니다. 이러한 속성 중 일부 propagate 는 fonts 와 동일한 방식으로 자식 요소에 적용됩니다:

테마 및 입체감 속성을 나타내는 머티리얼 스타일 버튼

나머지 속성은 자식 요소로 전파되지 않습니다:

다음 예제에서는 창과 세 개의 라디오 버튼 모두 보라색 액센트 색상을 사용하여 다크 테마로 표시됩니다:

import QtQuick
import QtQuick.Controls
import QtQuick.Controls.Material

ApplicationWindow {
    visible: true

    Material.theme: Material.Dark
    Material.accent: Material.Purple

    Column {
        anchors.centerIn: parent

        RadioButton {
            text: qsTr("Small")
        }
        RadioButton {
            text: qsTr("Medium")
            checked: true
        }
        RadioButton {
            text: qsTr("Large")
        }
    }
}

사용자 정의 보라색 포인트가 적용된 소재 스타일 컨트롤

QML에서 속성을 지정하는 것 외에도, 환경 변수나 구성 파일을 통해 일부 속성을 지정할 수도 있습니다. QML에서 지정된 속성은 다른 모든 방법보다 우선합니다.

구성 파일

변수설명
Theme기본 Material 테마를 지정합니다. 값은 사용 가능한 테마 중 하나여야 하며, 예를 들어 "Dark" 와 같습니다.
VariantMaterial 변형을 지정합니다. Material Design에는 터치 기기용으로 설계된 일반 변형과 데스크톱용 고밀도 변형의 두 가지 변형이 있습니다. 고밀도 변형은 컨트롤과 해당 글꼴의 크기를 더 작게 사용합니다.

값으로는 "Normal" 또는 "Dense" 을 지정할 수 있습니다.

Accent기본 Material 강조색을 지정합니다. 값은 임의의 color 일 수 있지만, "Teal" 와 같이 미리 정의된 Material 색상 중 하나를 사용하는 것이 권장됩니다.
Primary기본 Material 주 색상을 지정합니다. 값은 color 의 모든 색상으로 설정할 수 있지만, "BlueGrey" 와 같이 미리 정의된 Material 색상 중 하나를 사용하는 것이 권장됩니다.
Foreground기본 Material 전경색을 지정합니다. 값은 임의의 color 이거나, 미리 정의된 Material 색상 중 하나(예: "Brown")일 수 있습니다.
BackgroundMaterial의 기본 배경색을 지정합니다. 값은 color 중 하나이거나, 미리 정의된 Material 색상 중 하나(예: "Grey")일 수 있습니다.

구성 파일에 대한 자세한 내용은 Qt Quick Controls 구성 파일을 참조하십시오.

환경 변수

변수설명
QT_QUICK_CONTROLS_MATERIAL_THEME기본 Material 테마를 지정합니다. 값은 사용 가능한 테마 중 하나여야 하며, 예를 들어 "Dark" 와 같습니다.
QT_QUICK_CONTROLS_MATERIAL_VARIANTMaterial 변형을 지정합니다. Material Design에는 터치 기기용으로 설계된 일반 변형과 데스크톱용 고밀도 변형의 두 가지 변형이 있습니다. 고밀도 변형은 컨트롤과 해당 글꼴의 크기를 더 작게 사용합니다.

값으로는 "Normal" 또는 "Dense" 을 지정할 수 있습니다.

QT_QUICK_CONTROLS_MATERIAL_ACCENT기본 Material 강조색을 지정합니다. 값은 color 중 아무 것이나 될 수 있지만, "Teal" 와 같이 미리 정의된 Material 색상 중 하나를 사용하는 것이 권장됩니다.
QT_QUICK_CONTROLS_MATERIAL_PRIMARY기본 Material 주 색상을 지정합니다. 값은 color 의 모든 색상으로 설정할 수 있지만, "BlueGrey" 과 같이 미리 정의된 Material 색상 중 하나를 사용하는 것이 권장됩니다.
QT_QUICK_CONTROLS_MATERIAL_FOREGROUND기본 Material 전경색을 지정합니다. 값은 임의의 color 이거나, 미리 정의된 Material 색상 중 하나(예: "Brown")일 수 있습니다.
QT_QUICK_CONTROLS_MATERIAL_BACKGROUND기본 Material 배경색을 지정합니다. 값은 임의의 color 이거나, 미리 정의된 Material 색상 중 하나(예: "Grey")일 수 있습니다.

지원되는 환경 변수의 전체 목록은 Qt Quick Controls 의 ‘지원되는 환경 변수’ 섹션을 참조하십시오.

의존성

Material 스타일에 특화된 속성을 사용하려면 Material 스타일을 별도로 임포트해야 합니다. Material 스타일에 대한 참조 여부와 관계없이 동일한 애플리케이션 코드는 다른 어떤 스타일로도 실행된다는 점에 유의해야 합니다. Material 스타일에 특화된 속성은 애플리케이션이 Material 스타일로 실행될 때만 적용됩니다.

항상 로드되는 QML 파일에 Material 스타일이 임포트된 경우, 어떤 스타일로 실행하든 상관없이 애플리케이션을 실행할 수 있도록 하려면 Material 스타일을 애플리케이션과 함께 배포해야 합니다. 파일 선택기를 사용하면 스타일에 대한 고정적인 의존성을 생성하지 않고도 스타일별 조정을 적용할 수 있습니다.

사전 정의된 Material 색상

기본색(primary)과 강조색(accent)은 어떤 색상( color)이든 사용할 수 있지만, 나머지 Material 스타일 팔레트와 잘 어울리도록 설계된 사전 정의된 색상 중 하나를 사용하는 것이 좋습니다:

사용 가능한 사전 정의된 색상:

상수설명
Material.Red
#F44336
Material.Pink
#E91E63 (기본 강조색)
Material.Purple
#9C27B0
Material.DeepPurple
#673AB7
Material.Indigo
#3F51B5 (기본 기본색)
Material.Blue
#2196F3
Material.LightBlue
#03A9F4
Material.Cyan
#00BCD4
Material.Teal
#009688
Material.Green
#4CAF50
Material.LightGreen
#8BC34A
Material.Lime
#CDDC39
Material.Yellow
#FFEB3B
Material.Amber
#FFC107
Material.Orange
#FF9800
Material.DeepOrange
#FF5722
Material.Brown
#795548
Material.Grey
#9E9E9E
Material.BlueGrey
#607D8B

다크 테마가 활성화되어 있을 때, 기본적으로 미리 정의된 색상의 다양한 음영이 사용됩니다:

상수설명
Material.Red
#EF9A9A
Material.Pink
#F48FB1 (기본 강조색)
Material.Purple
#CE93D8
Material.DeepPurple
#B39DDB
Material.Indigo
#9FA8DA (기본 기본색)
Material.Blue
#90CAF9
Material.LightBlue
#81D4FA
Material.Cyan
#80DEEA
Material.Teal
#80CBC4
Material.Green
#A5D6A7
Material.LightGreen
#C5E1A5
Material.Lime
#E6EE9C
Material.Yellow
#FFF59D
Material.Amber
#FFE082
Material.Orange
#FFCC80
Material.DeepOrange
#FFAB91
Material.Brown
#BCAAA4
Material.Grey
#EEEEEE
Material.BlueGrey
#B0BEC5

사전 정의된 색조

Material.color() 함수에 전달할 수 있는 각 사전 정의된 색상에는 여러 가지 다른 색조가 있습니다:

상수값
Material.Shade50
Material.Shade100
Material.Shade200
Material.Shade300
Material.Shade400
Material.Shade500
Material.Shade600
Material.Shade700
Material.Shade800
Material.Shade900
Material.ShadeA100
Material.ShadeA200
Material.ShadeA400
Material.ShadeA700

참조: 기본 스타일, 범용 스타일

변형

Material 스타일은 밀집형 변형도 지원하며, 이 변형에서는 버튼 및 델리게이트와 같은 컨트롤의 높이가 더 작아지고 더 작은 글꼴 크기가 사용됩니다. 마우스와 키보드를 통해 더 정밀하고 유연한 사용자 상호작용이 가능한 데스크톱 플랫폼에서는 밀집형 변형을 사용하는 것이 권장됩니다.

밀집 변형을 사용하려면 QT_QUICK_CONTROLS_MATERIAL_VARIANT 환경 변수를 Dense 로 설정하거나, qtquickcontrols2.conf 파일에서 Variant=Dense 를 지정하십시오. 두 경우 모두 기본값은 Normal 입니다.

다음 이미지는 일반 변형과 밀집 변형을 사용할 때 일부 컨트롤 간의 차이점을 보여줍니다:

일반 크기 변형의 소재 스타일 제어

밀도 높은 크기 변형에서의 소재 스타일 제어

단, 위에 표시된 높이는 플랫폼별 글꼴 차이에 따라 달라질 수 있습니다.

컨트롤별 참고 사항

TextArea

TextArea 두 가지 컨테이너 스타일(containerStyles)을 지원합니다: Filled 및 Outlined. Outlined TextArea는 컨트롤 상단에 떠 있는 플레이스홀더 텍스트를 갖습니다. 이 경우 플레이스홀더 텍스트가 컨트롤의 경계를 벗어나게 되므로, TextArea의 부모인 ` TextArea ` 또는 `Flickable`이 ` clip `을 ` true`으로 설정하면 텍스트가 잘릴 수 있습니다. 이를 방지하기 위해 이러한 경우 ` topInset `을 적절한 값으로 설정해야 합니다.

Material 가이드라인에 따라, 자리 표시자 텍스트는 짧게 유지하고 여러 줄에 걸쳐서는 안 됩니다.

TextField

앞서 TextArea 에서 설명한 클리핑 관련 문제는 TextField 에서도 발생할 수 있습니다. 이를 방지하려면, TextField 가 clip을 true 로 설정할 때 topInset 을 적절한 값으로 설정해야 합니다.

Material 가이드라인에 따라, 자리 표시자 텍스트는 짧게 유지하고 여러 줄에 걸쳐서는 안 됩니다.

관련 속성 문서

Material.accent: color

이 첨부 속성은 테마의 강조색을 저장합니다. 이 속성은 모든 창이나 항목에 첨부할 수 있습니다. 값은 자식 요소로 전파됩니다.

기본값은 Material.Pink 입니다.

다음 예제에서는 강조 표시된 버튼의 강조색이 Material.Orange 로 변경됩니다:

Button {
    text: qsTr("Button")
    highlighted: true
    Material.accent: Material.Orange
}

악센트 색상을 보여주는 소재 스타일 컨트롤

참고: 액센트 색상은 어떤 color 라도 사용할 수있지만 , 나머지 Material 스타일 팔레트와 잘 어울리도록 설계된 미리 정의된 Material 색상 중 하나를 사용하는 것이 좋습니다.


Material.background: color

이 부착 속성은 테마의 배경색을 지정합니다. 이 속성은 모든 창이나 항목에 부착할 수 있으며, 해당 값은 자식 요소로 전달됩니다.

기본값은 테마(밝은 테마 또는 어두운 테마)에 따라 다릅니다.

다음 예제에서는 버튼의 배경색을 Material.Teal 로 변경합니다:

Button {
    text: qsTr("Button")
    highlighted: true
    Material.background: Material.Teal
}

배경색을 보여주는 재료 스타일 컨트롤


Material.elevation: int

이 첨부 속성은 컨트롤의 높이(elevation)를 나타냅니다. 높이가 높을수록 그림자가 더 깊어집니다. 이 속성은 모든 컨트롤에 첨부할 수 있지만, 모든 컨트롤이 높이를 시각화하는 것은 아닙니다. 이 값은 자식 요소로 전달되지 않습니다.

기본값은 컨트롤마다 다릅니다.

다음 예제에서는 돌출된 카드의 모양을 구현하기 위해 패널의 높이를 ` 6 `로 설정했습니다:

Pane {
    width: 120
    height: 120

    Material.elevation: 6

    Label {
        text: qsTr("I'm a card!")
        anchors.centerIn: parent
    }
}

고도 수준을 표시하는 재료 스타일 컨트롤


Material.foreground: color

이 부착 속성은 테마의 전경색을 저장합니다. 이 속성은 모든 창이나 항목에 부착할 수 있습니다. 이 값은 자식 요소로 전파됩니다.

기본값은 테마에 따라 다릅니다(밝은 테마 또는 어두운 테마).

다음 예제에서는 버튼의 전경색이 Material.Pink 로 설정되어 있습니다:

Button {
    text: qsTr("Button")
    Material.foreground: Material.Pink
}

머티리얼 스타일의 분홍색 전경색을 가진 버튼


Material.primary: color

이 부착 속성은 테마의 기본 색상을 저장합니다. 이 속성은 모든 창이나 항목에 부착할 수 있습니다. 값은 자식 요소로 전달됩니다.

기본 색상은 기본적으로 ToolBar 의 배경색으로 사용됩니다.

기본값은 ` Material.Indigo`입니다.

참고: 기본 색상은 어떤 color 라도 사용할 수있지만 , 나머지 Material 스타일 팔레트와 잘 어울리도록 설계된 미리 정의된 Material 색상 중 하나를 사용하는 것이 좋습니다.


Material.theme: 열거형

이 첨부 속성은 테마가 밝은(light)지 어두운(dark)지를 나타냅니다. 이 속성은 모든 창이나 항목에 첨부할 수 있습니다. 이 값은 자식 요소로 전파됩니다.

사용 가능한 테마:

상수설명
Material.Light밝은 테마 (기본값)
Material.Dark다크 테마
Material.System시스템 테마

테마를 ` System `로 설정하면 시스템 테마 색상에 따라 밝은 테마 또는 어두운 테마 중 하나가 선택됩니다. 그러나 테마 속성의 값을 읽을 때는 해당 값이 ` System`가 아닌 실제 테마로 반환됩니다.

다음 예제에서는 창과 버튼 모두의 테마가 Material.Dark 로 설정되어 있습니다:

Pane {
    Material.theme: Material.Dark

    Button {
        text: qsTr("Button")
    }
}

머티리얼 다크 테마의 패널과 버튼


Material.roundedScale: 열거형

이 첨부 속성은 대상 컨트롤에 사용되는 둥근 모서리의 반지름을 저장합니다. 이 속성은 모든 창이나 항목에 첨부할 수 있지만, 일부 컨트롤에서만 지원됩니다. 이 값은 자식 요소로 전파되지 않습니다.

기본값은 컨트롤마다 다릅니다.

사용 가능한 반경 값:

상수설명
Material.NotRounded모서리가 직각인
Material.ExtraSmallScale매우 작은 둥근 모서리
Material.SmallScale작은 둥근 모서리
Material.MediumScale중간 둥근 모서리
Material.LargeScale모서리가 크게 둥근
Material.ExtraLargeScale매우 큰 둥근 모서리
Material.FullScale모서리 전체 둥글림

이 속성은 Qt 6.5에서 추가되었습니다.

참조: 머티리얼 스타일: 모양.


Material.containerStyle: 열거형

이 부착 속성은 대상 컨트롤이 사용하는 컨테이너의 스타일을 저장합니다. 이 속성은 모든 창이나 항목에 부착할 수 있지만, 기본적으로 TextField 및 TextArea 에서만 지원됩니다. 이 값은 자식 요소로 전파되지 않습니다.

기본값은 컨트롤마다 다릅니다.

사용 가능한 스타일:

상수설명
Material.Filled가능한 경우 채워진 컨테이너 변형을 사용하십시오
Material.Outlined가능한 경우 윤곽선 처리된 컨테이너 변형을 사용하십시오

이 속성은 Qt 6.5에서 추가되었습니다.

참조: 머티리얼 스타일: 텍스트 필드 컨테이너.


첨부된 메서드 문서

color color(enumeration predefined, enumeration shade)

이 부가 메서드는 지정된 사전 정의된 머티리얼 색상과 주어진 색조(shade)를 결합한 실제 색상 값을 반환합니다. 생략할 경우, shade 인수는 기본적으로 Material.Shade500 로 설정됩니다.

Rectangle {
    color: Material.color(Material.Red)
}

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