이 페이지에서

Qt QML Type

Qt의 유용한 열거형과 함수를 포함하는 전역 객체를 제공합니다. 더 보기...

Import Statement: import QtQml

속성

방법

  • string QT_TRANSLATE_NOOP(string context, string sourceText, string disambiguation)
  • string QT_TRID_NOOP(string id)
  • string QT_TR_NOOP(string sourceText, string disambiguation)
  • color alpha(color baseColor, real value)
  • ArrayBuffer atob(ArrayBuffer data) (since 6.11)
  • var atob(var data) (since 6.11)
  • var binding(var function)
  • ArrayBuffer btoa(ArrayBuffer data) (since 6.11)
  • var btoa(var data) (since 6.11)
  • void callLater(function)
  • void callLater(function, argument1, argument2, ...)
  • color color(string name)
  • color colorEqual(color lhs, string rhs)
  • Component createComponent(url url, enumeration mode, QtObject parent)
  • Component createComponent(string moduleUri, string typeName, enumeration mode, QtObject parent) (since 6.5)
  • QtObject createQmlObject(string qml, QtObject parent, url url)
  • color darker(color baseColor, real factor)
  • real enumStringToValue(enumType, keyName)
  • string enumValueToString(enumType, keyValue)
  • list<string> enumValueToStrings(enumType, keyValue)
  • string escapeHtml(string data) (since 6.12)
  • void exit(int retCode)
  • font font(var fontSpecifier)
  • list<string> fontFamilies()
  • string formatDate(datetime date, variant format, variant localeFormatOption)
  • string formatDateTime(datetime dateTime, variant format, variant localeFormatOption)
  • string formatTime(datetime time, variant format, variant localeFormatOption)
  • void gc()
  • color hsla(real hue, real saturation, real lightness, real alpha)
  • color hsva(real hue, real saturation, real value, real alpha)
  • bool isQtObject(object)
  • color lighter(color baseColor, real factor)
  • locale locale(name)
  • string md5(data)
  • matrix4x4 matrix4x4()
  • matrix4x4 matrix4x4(var values)
  • matrix4x4 matrix4x4(real m11, real m12, real m13, real m14, real m21, real m22, real m23, real m24, real m31, real m32, real m33, real m34, real m41, real m42, real m43, real m44)
  • bool openUrlExternally(url target)
  • point point(real x, real y)
  • string qsTr(string sourceText, string disambiguation, int n)
  • string qsTrId(string id, int n)
  • string qsTranslate(string context, string sourceText, string disambiguation, int n)
  • quaternion quaternion(real scalar, real x, real y, real z)
  • void quit()
  • rect rect(real x, real y, real width, real height)
  • url resolvedUrl(url url)
  • url resolvedUrl(url url, object context)
  • color rgba(real red, real green, real blue, real alpha)
  • size size(real width, real height)
  • color tint(color baseColor, color tintColor)
  • url url(url url)
  • vector2d vector2d(real x, real y)
  • vector3d vector3d(real x, real y, real z)
  • vector4d vector4d(real x, real y, real z, real w)

상세 설명

Qt 유틸리티 함수, 속성 및 열거형을 제공하는 싱글톤 타입입니다. 다음은 이 타입을 사용하는 방법을 보여주는 예제입니다:

import QtQuick 2.0

Text {
    color: Qt.rgba(1, 0, 0, 1)
    text: Qt.md5("hello, world")
}

열거형

이 Qt 객체에는 ` Qt Namespace`에서 사용할 수 있는 열거형이 포함되어 있습니다. 예를 들어, ` Qt::LeftButton ` 및 ` Qt::RightButton ` 열거형 값에 ` Qt.LeftButton ` 및 ` Qt.RightButton`을 통해 접근할 수 있습니다.

형

Qt 객체에는 특정 데이터 유형의 객체를 생성하기 위한 헬퍼 함수도 포함되어 있습니다. 이는 주로 항목의 속성이 다음 유형 중 하나일 때 해당 속성을 설정할 때 유용합니다:

QtQuick 모듈이 임포트된 경우, 클라이언트는 특정 데이터 유형의 객체를 생성하기 위한 다음 헬퍼 함수들도 사용할 수 있습니다:

날짜/시간 포맷터

이 Qt 객체에는 QDateTime, QDate 및 QTime 값의 형식을 지정하는 여러 함수가 포함되어 있습니다.

서식 지정 방법은 Qt.formatDateTime 에서 설명되어 있습니다.

동적 객체 생성

글로벌 객체에 정의된 다음 함수를 사용하면 파일이나 문자열을 통해 QML 항목을 동적으로 생성할 수 있습니다. 사용 방법에 대한 개요는 ‘JavaScript를 통한 동적 QML 객체 생성’을 참조하십시오.

기타 함수

다음 함수들도 Qt 객체에 포함되어 있습니다.

속성 설명

application : Application

application 객체는 많은 QML 컴포넌트가 공유하는 전역 애플리케이션 상태 속성에 대한 액세스를 제공합니다.

이는 Application 싱글톤과 동일합니다.

다음 예제는 application 객체를 사용하여 애플리케이션이 현재 활성 상태인지 여부를 나타냅니다:

import QtQuick

Rectangle {
    width: 300; height: 55
    color: Qt.application.active ? "white" : "lightgray"
    Text {
        text: "Application " + (Qt.application.active ? "active" : "inactive")
        opacity: Qt.application.active ? 1.0 : 0.5
        anchors.centerIn: parent
    }
}

참고: QGuiApplication 없이 QML을 사용할경우 , 다음 속성들은 정의되지 않습니다:

  • application.active
  • application.state
  • application.layoutDirection
  • application.font

inputMethod : InputMethod

이는 ` InputMethod ` 싱글톤과 동일합니다.

inputMethod 객체를 사용하면 애플리케이션의 QInputMethod 객체와 그 모든 속성 및 슬롯에 접근할 수 있습니다. 자세한 내용은 QInputMethod 문서를 참조하십시오.

platform : var

platform 객체는 기본 플랫폼에 대한 정보를 제공합니다.

이 객체의 속성은 다음과 같습니다.

platform.os이 읽기 전용 속성에는 운영 체제의 이름이 포함됩니다.

가능한 값은 다음과 같습니다:

  • "android" - Android
  • "ios" - iOS
  • "tvos" - tvOS
  • "visionos" - visionOS
  • "linux" - 리눅스
  • "osx" - macOS
  • "qnx" - QNX (Qt 5.9.3부터)
  • "unix" - 기타 유닉스 기반 OS
  • "windows" - Windows
  • "wasm" - WebAssembly

참고: macOS에서이 속성의 값은 Apple의 명명 규칙과 관계없이 "osx"입니다. Qt 7에서는 반환되는 값이 "macos"로 업데이트될 예정입니다.

platform.pluginName이는 QGuiApplication::platformName()이 반환하는 대로 QGuiApplication 인스턴스에 설정된 플랫폼의 이름입니다.

styleHints : QtObject

styleHints 객체는 플랫폼별 스타일 힌트와 설정을 제공합니다. 자세한 내용은 QStyleHints 문서를 참조하십시오.

Application::styleHints 를 통해 StyleHints에 접근하는 것이 좋습니다. 이는 Qt Quick Compiler.

참고: styleHints 객체는 Qt Quick 모듈을 사용할 때만 사용할 수 있습니다.

uiLanguage : string

uiLanguage는 사용자 인터페이스 문자열 번역에 사용될 언어의 이름을 저장합니다. C++에서는 QJSEngine::uiLanguage 속성으로 노출됩니다.

이 값은 자유롭게 설정할 수 있으며 바인딩에서 사용할 수 있습니다. 애플리케이션에 번역기를 설치한 후에 설정하는 것이 좋습니다. 관례상, 빈 문자열은 소스 코드에서 사용된 언어에 대한 번역이 이루어지지 않음을 의미합니다.

QQmlApplicationEngine 를 사용하고 있는 중에 값이 변경되면 QQmlEngine::retranslate()가 호출됩니다.

메서드 문서

string QT_TRANSLATE_NOOP(string context, string sourceText, string disambiguation)

주어진 context 내에서 동적 번역을 위해 sourceText 를 표시합니다. 즉, 저장된 sourceText 는 변경되지 않습니다.

동일한 번역 컨텍스트 내에서 서로 다른 역할에 동일한 sourceText 이 사용되는 경우, disambiguation 에 추가 식별 문자열을 전달할 수 있습니다.

sourceText 을 반환합니다.

QT_TRANSLATE_NOOP는 동적 번역 함수 qsTr() 및 qsTranslate()와 함께 사용됩니다. 이 함수는 번역이 필요한 문자열을 식별하지만(따라서 lupdate 로 식별될 수 있음), 실제 번역은 동적 함수에 맡깁니다.

예시:

Item {
    property string greeting: QT_TRANSLATE_NOOP("CustomContext", "hello")

    Text { text: qsTranslate("CustomContext", greeting) }
}

Qt를 이용한 국제화항목도 참조하십시오 .

string QT_TRID_NOOP(string id)

동적 번역을 위해 ` id `를 지정합니다.

id 를 반환합니다.

QT_TRID_NOOP는 동적 번역 함수 qsTrId()와 함께 사용됩니다. 이 플래그는 문자열이 번역이 필요함을 나타내지만(따라서 lupdate 를 통해 식별할 수 있음), 실제 번역 작업은 qsTrId()에 맡깁니다.

예시:

Item {
    property string greetingId: QT_TRID_NOOP("hello_id")

    Text { text: qsTrId(greetingId) }
}

qsTrId() 및 Qt를 이용한 국제화항목도 참조하십시오 .

string QT_TR_NOOP(string sourceText, string disambiguation)

동적 번역을 위해 sourceText 를 표시합니다. 즉, 저장된 sourceText 는 변경되지 않습니다.

동일한 번역 컨텍스트 내에서 서로 다른 역할에 동일한 ` sourceText `가 사용되는 경우, ` disambiguation`에 추가 식별 문자열을 전달할 수 있습니다.

sourceText 를 반환합니다.

QT_TR_NOOP는 동적 번역 함수 qsTr() 및 qsTranslate()과 함께 사용됩니다. 이 함수는 번역이 필요한 문자열을 식별하지만(따라서 lupdate 로 식별될 수 있음), 실제 번역 작업은 동적 함수에 맡깁니다.

예시:

Item {
    property string greeting: QT_TR_NOOP("hello")

    Text { text: qsTr(greeting) }
}

Qt를 이용한 국제화항목도 참조하십시오 .

color alpha(color baseColor, real value)

알파 값이 value 인 baseColor 을 반환합니다.

value 는 0(완전히 투명)에서 1(완전히 불투명)까지의 실수 값입니다.

참고: 타입이 지정된 Color::transparent

[since 6.11] ArrayBuffer atob(ArrayBuffer data)

ASCII를 바이너리로 변환 — 이 함수는 base64로 인코딩된 data 를 디코딩하여 반환합니다.

data 로 배열과 유사한 어떤 객체라도 전달할 수 있으며, 이 함수는 이를 바이트 배열로 변환하려고 시도합니다. 특히 이 함수는 숫자 목록이나 한 글자 길이의 문자열 목록과 함께 작동합니다. 하지만 가장 효율적인 방법은 QByteArray 나 JavaScript ArrayBuffer 객체를 전달하는 것입니다.

변환에 실패하고 ` data `가 예상된 형식이 아닌 것으로 판명되면 ` Invalid Character ` 예외가 발생하며 빈 배열이 반환됩니다.

이 메서드는 Qt 6.11에서 도입되었습니다.

[since 6.11] var atob(var data)

ASCII를 이진수로 변환 — 이 함수는 base64로 인코딩된 data 을 디코딩하여 반환합니다.

이 함수는 오버로드된 함수입니다.

이 메서드는 Qt 6.11에서 도입되었습니다.

var binding(var function)

속성 바인딩을 나타내는 JavaScript 객체를 반환하며, 이 객체에는 바인딩을 평가하는 function 가 포함됩니다.

이 함수의 주요 사용 사례는 두 가지입니다. 첫째, 자바스크립트 코드에서 명령형 방식으로 속성 바인딩을 적용하는 경우:

Item {
    property bool someCondition: true
    property int edgePosition

    Component.onCompleted: {
        if (someCondition == true) {
            // bind to the result of the binding expression passed to Qt.binding()
            edgePosition = Qt.binding(function() { return x + width })
        }
    }
}

둘째, 동적으로 생성된 객체의 속성 값을 초기화할 때( Component.createObject() 또는 Loader.setSource()을 통해) 속성 바인딩을 적용하는 경우입니다.

예를 들어, DynamicText 컴포넌트가 존재한다고 가정하면:

import QtQuick

Text {
    id: textElement
    width: 200
    height: 200
    text: "Default text"
    property string dynamicText: "Dynamic text"
    onTextChanged: console.log(text)
}

다음 코드의 출력 결과는:

Item {
    id: root
    property string dynamicText: "Root text"

    Component.onCompleted: {
        var c = Qt.createComponent("DynamicText.qml")

        var obj1 = c.createObject(root, { 'text': Qt.binding(function() { return dynamicText + ' extra text' }) })
        root.dynamicText = "Modified root text"

        var obj2 = c.createObject(root, { 'text': Qt.binding(function() { return this.dynamicText + ' extra text' }) })
        obj2.dynamicText = "Modified dynamic text"
    }
}

그리고 다음 코드의 출력 결과는

Item {
    id: root
    property string dynamicText: "Root text"

    Loader {
        id: loaderOne
        onLoaded: root.dynamicText = "Modified root text"
    }

    Loader {
        id: loaderTwo
        onLoaded: item.dynamicText = "Modified dynamic text"
    }

    Component.onCompleted: {
        loaderOne.setSource("DynamicText.qml", { 'text': Qt.binding(function() { return dynamicText + ' extra text' }) })
        loaderTwo.setSource("DynamicText.qml", { 'text': Qt.binding(function() { return this.dynamicText + ' extra text' }) })
    }
}

모두 다음과 같아야 합니다:

Root text extra text
Modified root text extra text
Dynamic text extra text
Modified dynamic text extra text

이 함수는 결과가 var 속성에 바인딩된 배열에 저장되는 경우를 제외하고는 속성 바인딩 선언( 바인딩 선언 및 바인딩 할당에 대한 문서 참조)에서 사용할 수 없습니다.

Item {
    width: 50
    property var storedBindings: [ Qt.binding(function() { return x + width }) ] // stored
    property int a: Qt.binding(function() { return x + width }) // error!
    property int b

    Component.onCompleted: {
        b = storedBindings[0] // causes binding assignment
    }
}

[since 6.11] ArrayBuffer btoa(ArrayBuffer data)

바이너리에서 ASCII로 — 이 함수는 data 의 base64 인코딩을 반환합니다.

data 로 처리할 수 있는 배열과 유사한 어떤 객체라도 전달할 수 있으며, 이 함수는 이를 바이트 배열로 변환하려고 시도합니다. 특히 이 함수는 숫자 목록이나 한 글자 길이의 문자열 목록에서 잘 작동합니다. 그러나 이를 수행하는 가장 효율적인 방법은 QByteArray 나 JavaScript ArrayBuffer 객체를 전달하는 것입니다.

변환에 실패하여 data 가 예상된 형식이 아닌 것으로 판명되면, Invalid Character 예외가 발생하고 빈 배열이 반환됩니다.

이 메서드는 Qt 6.11에서 도입되었습니다.

[since 6.11] var btoa(var data)

바이너리에서 ASCII로 — 이 함수는 data 의 Base64 인코딩을 반환합니다.

이 함수는 오버로드된 함수입니다.

이 메서드는 Qt 6.11에서 도입되었습니다.

void callLater(function)

void callLater(function, argument1, argument2, ...)

이 함수를 사용하면 함수나 시그널에 대한 중복 호출을 제거할 수 있습니다.

Qt XML.callLater()의 첫 번째 인자로 전달된 함수는 QML 엔진이 이벤트 루프로 돌아온 후에 호출됩니다.

이 함수가 첫 번째 인자로 동일한 함수를 받아 연달아 여러 번 호출될 경우, 해당 함수는 한 번만 호출됩니다.

예를 들어:

import QtQuick

Rectangle {
    width: 480
    height: 320

    property int callsToUpdateMinimumWidth: 0
    property bool optimize: true

    property int currentTextModel: 0
    property var columnTexts: [
        ["Click on either", "rectangle above", "and note how the counter", "below updates", "significantly faster using the", "regular (non-optimized)", "implementation"],
        ["The width", "of this column", "is", "no wider than the", "widest item"],
        ["Note how using Qt.callLater()", "the minimum width is", "calculated a bare-minimum", "number", "of times"]
    ]

    Text {
        x: 20; y: 280
        text: "Times minimum width has been calculated: " + callsToUpdateMinimumWidth
    }

    Row {
        y: 25; spacing: 30; anchors.horizontalCenter: parent.horizontalCenter
        Rectangle {
            width: 200; height:  50; color: "lightgreen"
            Text { text: "Optimized behavior\nusing Qt.callLater()"; anchors.centerIn: parent }
            MouseArea { anchors.fill: parent; onClicked: { optimize = true; currentTextModel++ } }
        }
        Rectangle {
            width: 200; height:  50; color: "lightblue"
            Text { text: "Regular behavior"; anchors.centerIn: parent}
            MouseArea { anchors.fill: parent; onClicked: { optimize = false; currentTextModel++ } }
        }
    }

    Column {
        id: column
        anchors.centerIn: parent

        onChildrenChanged: optimize ? Qt.callLater(updateMinimumWidth) : updateMinimumWidth()

        property int widestChild
        function updateMinimumWidth() {
            callsToUpdateMinimumWidth++
            var w = 0;
            for (var i in children) {
                var child = children[i];
                if (child.implicitWidth > w) {
                    w = child.implicitWidth;
                }
            }

            widestChild = w;
        }

        Repeater {
            id: repeater
            model: columnTexts[currentTextModel%3]
            delegate: Text {
                color: "white"
                text: modelData
                width: column.widestChild
                horizontalAlignment: Text.Center
                Rectangle { anchors.fill: parent; z: -1; color: index%2 ? "gray" : "darkgray" }
            }
        }
    }
}

Qt XML.callLater()에 전달된 추가 인수는 호출된 함수로 전달됩니다. 중복 호출이 제거될 경우, 마지막 인수 세트만 함수로 전달된다는 점에 유의하십시오.

color color(string name)

지정된 name (예: red 또는 #ff0000)에 해당하는 색상을 반환합니다. 해당 색상이 없는 경우 null 가 반환됩니다.

참고: 타입 지정된 Color::fromString

color colorEqual(color lhs, string rhs)

lhs 와 rhs 가 모두 동일한 색상 값을 반환하는 경우 true 를 반환합니다. 두 인자 모두 색상 값이거나 문자열 값일 수 있습니다. 문자열 값이 전달된 경우, color 값 유형에 설명된 대로 색상으로 변환 가능해야 합니다.

참고: 타입이 지정된 Color::equal

Component createComponent(url url, enumeration mode, QtObject parent)

지정된 url 에 있는 QML 파일을 사용하여 생성된 Component 객체를 반환하거나, 빈 문자열이 전달된 경우 null 를 반환합니다.

반환된 컴포넌트의 Component::status 속성은 컴포넌트가 성공적으로 생성되었는지 여부를 나타냅니다. 상태가 Component.Error 인 경우, 오류 설명은 Component::errorString()을 참조하십시오.

선택적 매개변수인 ` mode `가 ` Component.Asynchronous`로 설정된 경우, 컴포넌트는 백그라운드 스레드에서 로드됩니다. 로드 중에는 ` Component::status ` 속성이 ` Component.Loading ` 상태가 됩니다. 컴포넌트 로드가 성공하면 상태는 ` Component.Ready `로 변경되고, 로드에 실패하면 ` Component.Error `로 변경됩니다. 이 매개변수는 생략될 경우 기본값인 ` Component.PreferSynchronous `로 설정됩니다.

mode 가 Component.PreferSynchronous 로 설정된 경우, Qt는 컴포넌트를 동기식으로 로드하려고 시도하지만, 필요한 경우 비동기식으로 로드할 수도 있습니다. 비동기 로드가 발생할 수 있는 시나리오는 다음을 포함하되 이에 국한되지 않습니다:

  • URL이 네트워크 리소스를 가리키는 경우
  • 해당 컴포넌트가 비동기적으로 로드 중인 다른 컴포넌트의 결과로 생성되는 경우

선택적 매개변수인 ` parent `가 지정된 경우, 이는 생성된 ` Component ` 객체의 부모가 될 객체를 가리켜야 합니다. 모드가 전달되지 않은 경우, 두 번째 인자가 이를 대신할 수 있습니다.

반환된 컴포넌트에서 Component.createObject()을 호출하여 해당 컴포넌트의 객체 인스턴스를 생성하십시오.

예:

import QtQuick

Item {
    id: container
    width: 300; height: 300

    function loadButton() {
        var component = Qt.createComponent("Button.qml");
        if (component.status == Component.Ready) {
            var button = component.createObject(container);
            button.color = "red";
        }
    }

    Component.onCompleted: loadButton()
}

이 함수 사용에 대한 자세한 내용은 JavaScript를 통한 동적 QML 객체 생성을 참조하십시오.

(파일 대신) 임의의 QML 문자열로부터 QML 객체를 생성하려면 ` Qt.createQmlObject()`를 사용하십시오.

[since 6.5] Component createComponent(string moduleUri, string typeName, enumeration mode, QtObject parent)

moduleUri 및 typeName 에서 지정한 유형에 대해 생성된 Component 객체를 반환합니다.

import QtQml
QtObject {
    id: root
    property Component myComponent: Qt.createComponent("QtQuick", "Rectangle", Component.Asynchronous, root)
}

이 오버로드는 대체로 url 기반 버전과 동일하게 동작하지만, URL이 없는 유형(예: QML_ELEMENT 을 통해 등록된 C++ 유형)을 인스턴스화하는 데 사용할 수 있습니다.

참고: 경우에 따라 Component.Asynchronous 를 전달해도 아무런 효과가 없을 수 있습니다:

  • 해당 타입이 C++로 구현된 경우
  • 해당 타입이 인라인 컴포넌트인 경우

선택적 매개변수 parent 가 전달된 경우, 이는 생성될 Component 객체의 부모가 될 객체를 가리켜야 합니다. 모드가 전달되지 않은 경우, 이는 두 번째 인수가 될 수 있습니다.

이 함수는 오버로드된 함수입니다.

이 메서드는 Qt 6.5에서 도입되었습니다.

QtObject createQmlObject(string qml, QtObject parent, url url)

주어진 ` qml ` 문자열을 컴포넌트로 컴파일한 다음, 해당 컴포넌트로 생성된 새로운 객체를 반환합니다. 이 새로운 객체는 지정된 ` parent`을 갖게 됩니다. 컴포넌트나 객체 생성 과정에서 오류가 발생한 경우 ` null `을 반환합니다.

url 가 지정된 경우, 해당 값이 컴포넌트의 URL로 사용됩니다. 이는 오류 보고에 유용합니다.

경고: 새로운컴포넌트는 동일한 URL을 가진 기존 컴포넌트를 가리게 됩니다. 기존 컴포넌트의 URL을 전달해서는 안 됩니다. 특히, 둘러싸고 있는 QML 파일의 URL을 전달하면 새로운 컴포넌트에서 둘러싸고 있는 컴포넌트에 접근할 수 없게 됩니다.

예시 (여기서 parentItem 는 기존 QML 항목의 ID입니다):

const newObject = Qt.createQmlObject(`
    import QtQuick

    Rectangle {
        color: "red"
        width: 20
        height: 20
    }
    `,
    parentItem,
    "myDynamicSnippet"
);

오류가 발생하면 QQmlError 객체가 던져집니다. 이 객체에는 qmlErrors 라는 추가 속성이 있으며, 이는 발생한 오류들의 배열입니다. 이 배열의 각 객체는 lineNumber, columnNumber, fileName 및 message 멤버를 가집니다. 예를 들어, 위 스니펫에서 'color'를 'colro'로 잘못 입력했다면, 배열에는 다음과 같은 객체가 포함될 것입니다: { "lineNumber" : 1, "columnNumber" : 32, "fileName" : "dynamicSnippet1", "message" : "존재하지 않는 속성 'colro'에 할당할 수 없습니다"}.

참고: 이 함수는 즉시 반환되므로, qml 문자열이 새로운 컴포넌트(즉, 아직 로드되지 않은 외부 QML 파일)를 로드하는 경우 작동하지 않을 수 있습니다. 이 경우, 대신 Qt.createComponent()을 사용하는 것을 고려해 보십시오.

경고: 이 함수는 호출될 때마다 전달된 QML 문자열을 컴파일해야 하므로 처리 속도가 매우 느립니다. 또한, 프로그래밍 방식으로 QML 코드를 생성할 때 유효하지 않은 QML이 생성될 가능성이 매우 높습니다. 문자열 조작을 통해 새로운 컴포넌트를 생성하는 것보다, QML 컴포넌트를 별도의 파일로 분리해 두고 속성과 메서드를 추가하여 동작을 사용자 정의하는 편이 훨씬 좋습니다.

이 함수 사용에 대한 자세한 내용은 ‘자바스크립트를 통한 동적 QML 객체 생성’을 참조하십시오.

color darker(color baseColor, real factor)

지정된 factor 만큼 baseColor 보다 어두운 색상을 반환합니다.

요인( )이 1.0보다 크면 이 함수는 더 어두운 색상을 반환합니다. factor를 3.0으로 설정하면 밝기가 3분의 1인 색상을 반환합니다. factor가 1.0보다 작으면 반환되는 색상은 더 밝아지지만, 이러한 용도에는 Qt XML의lighter() 함수를 사용하는 것이 좋습니다. factor가 0이거나 음수인 경우, 반환 값은 정의되지 않습니다.

이 함수는 현재 RGB 색상을 HSV로 변환하고, 값(V) 성분을 factor로 나눈 다음 색상을 다시 RGB로 변환합니다.

factor 가 지정되지 않으면, baseColor 보다 50% 더 어두운 색상(계수 2.0)을 반환합니다.

참고: 타입이 지정된 Color::darker

real enumStringToValue(enumType, keyName)

enumType 열거형 내의 key keyName 에 해당하는 숫자 값을 반환합니다. 해당 열거형을 찾을 수 없는 경우, TypeError 예외가 발생합니다. key가 열거형의 항목이 아닌 경우, ReferenceError 예외가 발생합니다.

string enumValueToString(enumType, keyValue)

값이 keyValue 인 enum enumType 의 키를 문자열로 변환하여 반환합니다. 해당 enum을 찾을 수 없는 경우 TypeError 예외가 발생합니다. 해당 값이 enum의 어떤 키와도 일치하지 않는 경우 ReferenceError 예외가 발생합니다.

참고: keyValue 의 값과 일치하는 키가 여러개인 경우 , 어떤 키가 반환될지는 명시되지 않습니다. 이 경우 enumValueToStrings 을 사용하십시오.

list<string> enumValueToStrings(enumType, keyValue)

enumType 열거형의 모든 키 중 값이 keyValue 인 키들의 문자열 표현을 담은 목록을 반환합니다. 해당 열거형을 찾을 수 없는 경우, TypeError 예외가 발생합니다. 열거형에 값이 keyValue 인 키가 하나도 없는 경우, ReferenceError 예외가 발생합니다.

[since 6.12] string escapeHtml(string data)

HTML 특수 문자가 이스케이프 처리된 ` data `를 반환합니다.

이 함수는 일반 텍스트 문자열 data 을 HTML 메타문자 <, >, &, " 가 HTML 엔티티로 대체된 HTML 문자열로 변환합니다.

예시:

var plain = "<script>alert('XSS')</script>";
var escaped = Qt.escapeHtml(plain);
// escaped is now "&lt;script&gt;alert('XSS')&lt;/script&gt;"

이 메서드는 Qt 6.12에서 도입되었습니다.

QString::toHtmlEscaped()도 참조하십시오 .

void exit(int retCode)

이 함수는 ` QQmlEngine::exit(int)` 신호를 발생시킵니다. qml 도구 내에서 이 신호는 런처 애플리케이션이 지정된 반환 코드(retCode)로 종료되도록 합니다. 이 메서드가 호출될 때 지정된 반환 코드로 이벤트 루프에서 종료되려면, C++ 애플리케이션에서 ` QQmlEngine::exit(int)` 신호를 ` QCoreApplication::exit(int)` 슬롯에 연결할 수 있습니다.

quit()도 참조하십시오 .

font font(var fontSpecifier)

fontSpecifier 객체에 지정된 속성을 가진 글꼴 또는 가장 유사한 글꼴을 반환합니다. fontSpecifier 객체에는 키-값 쌍이 포함되어야 하며, 유효한 키는 font 타입의 하위 속성 이름이고, 값은 각 하위 속성에 대한 유효한 값이어야 합니다. 유효하지 않은 키는 무시됩니다.

list<string> fontFamilies()

응용 프로그램에서 사용할 수 있는 글꼴 패밀리 목록을 반환합니다.

string formatDate(datetime date, variant format, variant localeFormatOption)

date 의 문자열 표현을 반환하며, 선택적으로 format 를 사용하여 서식을 지정할 수 있습니다.

date 매개변수는 JavaScript의 Date 객체, date 속성, QDate 또는 QDateTime 값일 수 있습니다. format 및 localeFormatOption 매개변수는 Qt.formatDateTime()에 설명된 가능한 형식 값 중 하나일 수 있습니다.

format 가 지정되지 않은 경우, date 는 기본 로케일을 사용하여 Locale.ShortFormat 에 따라 서식 처리됩니다.

Locale도 참조하십시오 .

string formatDateTime(datetime dateTime, variant format, variant localeFormatOption)

dateTime 의 문자열 표현을 반환하며, 선택적으로 format 및 localeFormatOption 를 사용하여 서식을 지정할 수 있습니다.

dateTime 매개변수는 JavaScript Date 객체, date 속성, QDate, QTime 또는 QDateTime 값일 수 있습니다.

format 가 지정되지 않은 경우, dateTime 는 기본 로케일을 사용하여 Locale.ShortFormat 을 통해 서식이 지정됩니다. 그렇지 않은 경우, format 는 다음 중 하나여야 합니다:

  • Qt::DateFormat 열거형 값 중 하나(예: Qt.RFC2822Date 또는 Qt.ISODate)여야 합니다.
  • 아래에 자세히 설명된 대로 반환되는 문자열의 형식을 지정하는 문자열.
  • locale 객체.

format 가 로케일 객체를 지정하는 경우, dateTime 는 QLocale::toString 로 서식이 지정됩니다. 이 경우, localeFormatOption 는 서식을 추가로 조정하기 위해 QLocale::FormatType 유형의 값을 가질 수 있습니다. 아무것도 제공되지 않으면 Locale.ShortFormat 가 사용됩니다.

format 에 서식 문자열이 지정된 경우, 날짜를 지정할 때는 다음 표현식을 사용해야 합니다:

표현식출력
d선두 0을 생략한 숫자로 표시된 요일(1~31)
dd앞에 0이 붙은 날짜(01~31)
ddd지역화된 요일 이름의 약어(예: 'Mon' ~ 'Sun'). QDate::shortDayName()을 사용합니다.
dddd지역화된 긴 요일 이름(예: 'Monday' ~ 'Qt::Sunday'). QDate::longDayName()을 사용합니다.
M선두 0이 없는 숫자로 표기된 월(1-12)
MM앞에 0을 붙인 숫자로 표기된 월(01-12)
MMM지역화된 월 이름의 약어(예: 'Jan' ~ 'Dec'). QDate::shortMonthName()을 사용합니다.
MMMM지역화된 월의 전체 명칭 (예: 'January' ~ 'December'). QDate::longMonthName()을 사용합니다.
yy두 자리 숫자로 표기된 연도(00-99)
yyyy4자리 연도

또한 시간을 지정하기 위해 다음 표현식을 사용할 수 있습니다:

표현식출력
h선두 0을 제외한 시간 (0~23 또는 AM/PM 표시 시 1~12)
hh선두 0이 포함된 시간 (00~23, AM/PM 표시 시 01~12)
m선두 0이 없는 분 (0~59)
mm앞에 0이 붙은 분 (00~59)
s선두 0이 없는 초 (0~59)
ss앞에 0이 붙은 초 (00~59)
z선두 0이 없는 밀리초(0~999)
zzz앞에 0이 붙은 밀리초 (000~999)
APAM/PM 표시를 사용합니다. AP는 "AM" 또는 "PM"으로 대체됩니다.
apAM/PM 표시를 사용합니다. ap는 “am” 또는 “pm”으로 대체됩니다.
t시간대 표시를 포함합니다.

그 외의 모든 입력 문자는 무시됩니다. 작은따옴표로 묶인 문자열은 표현식으로 사용되지 않고 텍스트로 처리됩니다. 출력 시 연속된 작은따옴표 두 개("''")는 작은따옴표 하나로 대체됩니다.

예를 들어, 다음과 같은 날짜/시간 값이 지정된 경우:

// 21 May 2001 14:13:09
var dateTime = new Date(2001, 5, 21, 14, 13, 09)

이 dateTime 값을 Qt.formatDateTime(), Qt.formatDate() 또는 Qt.formatTime()에 아래의 format 값과 함께 전달하면 다음과 같은 결과가 생성됩니다:

형식형식
"dd.MM.yyyy"21.05.2001
"ddd MMMM d yy"2001년 5월 21일 화
"hh:mm:ss.zzz"14:13:09.042
"h:m:s ap"오후 2:13:9

Locale도 참조하십시오 .

string formatTime(datetime time, variant format, variant localeFormatOption)

time 의 문자열 표현을 반환하며, 선택적으로 format 을 사용하여 서식을 지정할 수 있고, 제공된 경우 localeFormatOption 도 적용할 수 있습니다.

time 매개변수는 JavaScript Date 객체, QTime 또는 QDateTime 값일 수 있습니다. format 및 localeFormatOption 매개변수는 Qt.formatDateTime()에 설명된 가능한 형식 값 중 하나일 수 있습니다.

format 가 지정되지 않은 경우, time 는 기본 로케일을 사용하여 Locale.ShortFormat 에 따라 서식이 지정됩니다.

Locale도 참조하십시오 .

void gc()

가비지 컬렉터를 실행합니다.

이는 ` QJSEngine::collectGarbage()`를 호출하는 것과 동일합니다.

'가비지 컬렉션'항목도 참조하십시오 .

color hsla(real hue, real saturation, real lightness, real alpha)

지정된 hue, saturation, lightness 및 alpha 성분을 가진 색상을 반환합니다. 모든 성분은 0~1(양쪽 끝 포함) 범위 내에 있어야 합니다.

참고: 타입이 지정된 Color::hsla

color hsva(real hue, real saturation, real value, real alpha)

지정된 hue, saturation, value 및 alpha 성분을 가진 색상을 반환합니다. 모든 성분은 0~1(양쪽 끝 포함)의 범위 내에 있어야 합니다.

참고: 타입이 지정된 Color::hsva

bool isQtObject(object)

object 가 Qt Qml 객체에 대한 유효한 참조인 경우 true 를 반환하고, 그렇지 않은 경우 false 를 반환합니다.

color lighter(color baseColor, real factor)

지정된 factor 만큼 baseColor 보다 밝은 색상을 반환합니다.

계수가 1.0보다 크면, 이 함수는 더 밝은 색상을 반환합니다. factor를 1.5로 설정하면 50% 더 밝은 색상이 반환됩니다. factor가 1.0보다 작으면 반환되는 색상은 더 어두워지지만, 이러한 용도에는 Qt XML의darker() 함수를 사용하는 것이 좋습니다. factor가 0이거나 음수인 경우, 반환 값은 정의되지 않습니다.

이 함수는 현재 RGB 색상을 HSV로 변환하고, 값(V) 성분에 factor를 곱한 다음 색상을 다시 RGB로 변환합니다.

factor 가 지정되지 않으면, baseColor 보다 50% 더 밝은 색상(계수 1.5)을 반환합니다.

참고: 타입이 지정된 Color::lighter

locale locale(name)

지정된 지역 코드( name)를 가진 로케일을 나타내는 JS 객체를 반환하며, 이 지역 코드는 “language[_territory][.codeset][@modifier]” 또는 “C” 형식을 갖습니다. 여기서:

  • language 는 소문자 두 글자로 구성된 ISO 639 언어 코드이며,
  • territory 는 대문자로 된 두 글자의 ISO 3166 국가 코드이며,
  • codeset modifier 는 무시됩니다.

문자열이 로케일 형식을 위반하거나 language가 유효한 ISO 369 코드가 아닌 경우, 대신 "C" 로케일이 사용됩니다. country가 없거나 유효한 ISO 3166 코드가 아닌 경우, 지정된 언어에 가장 적합한 국가가 선택됩니다.

반환되는 객체는 QLocale 를 기반으로 하는 익명 QML 유형입니다.

Locale도 참조하십시오 .

string md5(data)

data 의 MD5 해시를 16진수 문자열로 반환합니다.

matrix4x4 matrix4x4()

4x4 단위 행렬을 반환합니다.

matrix4x4 matrix4x4(var values)

지정된 ` values` 값을 가진 4x4 행렬을 반환합니다. ` values `는 16개의 요소를 가진 JavaScript 배열이어야 합니다.

배열의 인덱스는 다음과 같이 행렬 내의 위치에 대응합니다:

0123
4567
891011
12131415

matrix4x4 matrix4x4(real m11, real m12, real m13, real m14, real m21, real m22, real m23, real m24, real m31, real m32, real m33, real m34, real m41, real m42, real m43, real m44)

지정된 값을 가진 4x4 행렬을 반환합니다.

인수들은 행렬 내의 위치에 따라 다음과 같이 대응됩니다:

m11m12m13m14
m21m22m23m24
m31m32m33m34
m41m42m43m44

bool openUrlExternally(url target)

사용자의 데스크톱 설정에 따라 지정된 target URL을 외부 애플리케이션에서 열려고 시도합니다. 성공하면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

target 가 상대 URL인 경우, 해당 URL이 절대 URL로 변환됩니다. 그 후, URL은 QDesktopServices::openUrl 로 전달됩니다.

경고: true 반환값은 애플리케이션이 운영 체제에 외부 애플리케이션에서 URL을 열도록 요청하는 데 성공했음을 나타냅니다. 그러나 외부 애플리케이션이 실행되지 않거나 요청된 URL을 열지 못할 수도 있습니다. 이러한 결과는 애플리케이션에 보고되지 않습니다.

경고: 신뢰할 수 없는 URL을 openUrlExternally에전달하면 예기치 않은 동작이 발생할 수 있습니다. 신뢰할 수 없는 URL을 이 함수에 전달해야 하는 경우, JavaScript URL 객체를 생성하고 해당 객체의 protocol 속성을 허용된 프로토콜 목록과 대조하여 확인하십시오. 또한 host 와 같은 다른 속성을 기반으로 추가 필터링을 수행할 수도 있습니다.

point point(real x, real y)

지정된 x 및 y 좌표를 가진 점을 반환합니다.

string qsTr(string sourceText, string disambiguation, int n)

sourceText 의 번역된 버전을 반환하며, 복수형이 포함된 문자열의 경우 선택적으로 disambiguation 문자열과 n 값을 기반으로 합니다. 적절한 번역된 문자열이 없는 경우에는 sourceText 자체를 반환합니다.

sourceText 및 n 을 사용한 예시:

    Text { text: qsTr("hello") }
    // Translates the source text into the correct
    // plural form and replaces %n with the value of total.
    Text {
        text: qsTr("%n message(s) saved", "", total)
    }

동일한 번역 컨텍스트 내에서 서로 다른 역할에 동일한 sourceText 가 사용되는 경우, disambiguation 에 추가 식별 문자열을 전달할 수 있습니다. 자세한 내용과 예제는 ‘동일한 텍스트의 모호성 해소’를 참조하십시오.

qsTranslate(), Qt를 이용한 국제화, 번역을 위한 소스 코드 작성항목도 참조하십시오 .

string qsTrId(string id, int n)

id 로 식별되는 번역된 문자열을 반환합니다. 일치하는 문자열이 발견되지 않으면 ID 자체가 반환됩니다. 정상적인 상황에서는 이런 일이 발생하지 않아야 합니다.

n 가 0 이상인 경우, 결과 문자열에서 %n 가 나타나는 모든 위치가 n 의 십진수 표현으로 대체됩니다. 또한, n 의 값에 따라 번역된 텍스트가 달라질 수 있습니다.

예시:

Text { text: qsTrId("hello_id") }

다음과 같은 소스 문자열 템플릿을 지정할 수 있습니다:

//% <string>

    Text {
        //% "hello"
        text: qsTrId("hello_id")
    }

또는

/*% <string> */

    Text {
        /*% "hello" */
        text: qsTrId("hello_id")
    }

이 함수와 함께 사용할 수 있는 바이너리 번역(QM) 파일을 생성하려면 lrelease 도구에 -idbased 옵션을 전달해야 합니다.

QT_TRID_NOOP() 및 Qt를 이용한 국제화항목도 참조하십시오 .

string qsTranslate(string context, string sourceText, string disambiguation, int n)

주어진 context 내에서 sourceText 의 번역된 버전을 반환하며, 복수형이 포함된 문자열의 경우 선택적으로 disambiguation 문자열과 n 값을 기반으로 합니다. 그렇지 않은 경우, 적절한 번역된 문자열이 없으면 sourceText 자체를 반환합니다.

동일한 번역 context 내에서 서로 다른 역할에 동일한 sourceText 가 사용되는 경우, disambiguation 에 대한 추가 식별 문자열을 전달할 수 있습니다.

예시:

Text { text: qsTranslate("CustomContext", "hello") }

파일 context 과 다른 번역 context 이 있는 경우 사용합니다.

Qt를 이용한 국제화 및 qsTr()항목도 참조하십시오 .

quaternion quaternion(real scalar, real x, real y, real z)

지정된 scalar, x, y 및 z 값을 갖는 쿼터니언을 반환합니다.

void quit()

이 함수는 QQmlEngine::quit() 신호를 발생시킵니다. qml 도구 내에서 이 신호가 발생하면 런처 애플리케이션이 종료됩니다. 이 메서드가 호출되었을 때 C++ 애플리케이션을 종료하려면, QQmlEngine::quit() 신호를 QCoreApplication::quit() 슬롯에 연결하십시오.

exit()도 참조하십시오 .

rect rect(real x, real y, real width, real height)

x, y 를 좌상단 모서리로 하고, 지정된 width 및 height 를 갖는 rect를 반환합니다.

url resolvedUrl(url url)

호출자의 URL을 기준으로 해결된 url 를 반환합니다.

호출자가 없거나 호출자가 QML 컨텍스트와 연결되어 있지 않은 경우, QML 엔진의 기본 URL을 기준으로 해결된 url 를 반환합니다. QML 엔진에 기본 URL이 없는 경우, 단순히 url 를 반환합니다.

url()도 참조하십시오 .

url resolvedUrl(url url, object context)

context 의 QML 컨텍스트 URL을 기준으로 해석된 url 을 반환합니다. context 이 QML 컨텍스트와 연결되어 있지 않은 경우, QML 엔진의 기본 URL을 기준으로 해석된 url 을 반환합니다. QML 엔진에 기본 URL이 없는 경우, 단순히 url 을 반환합니다.

url()도 참조하십시오 .

color rgba(real red, real green, real blue, real alpha)

지정된 red, green, blue 및 alpha 성분을 가진 색상을 반환합니다. 모든 성분은 0~1(양쪽 끝 포함) 범위 내에 있어야 합니다.

참고: 타입이 지정된 Color::rgba

size size(real width, real height)

지정된 ` width ` 및 ` height`을 가진 크기를 반환합니다.

color tint(color baseColor, color tintColor)

이 함수를 사용하면 한 색상(baseColor)에 다른 색상(tintColor)을 얇게 덧입힐 수 있습니다.

틴트 색상은 대개 거의 투명해야 하며, 그렇지 않으면 밑에 있는 색상을 볼 수 없습니다. 아래 예제에서는 틴트 색상을 불투명도가 1/16에 불과한 순수한 빨간색으로 설정하여 약간의 붉은색 틴트 효과를 주고 있습니다.

Item {
    Rectangle {
        x: 0; width: 80; height: 80
        color: "lightsteelblue"
    }
    Rectangle {
        x: 100; width: 80; height: 80
        color: Qt.tint("lightsteelblue", "#10FF0000")
    }
}

밝은 스틸 블루 색상의 정사각형과 색조를 적용한 밝은 스틸 블루 색상의 정사각형을 나란히 표시한 모습

틴팅은 특정 이벤트로 인해 미묘한 변화를 표현하고자 할 때 가장 유용하며, 이를 통해 보이는 색상을 보다 효과적으로 조정할 수 있습니다.

참고: 타입이 지정된 Color::tint

url url(url url)

url 를 그대로 반환합니다. 이 함수는 url 로의 유형 변환을 강제하는 데 사용할 수 있습니다. Qt.resolvedUrl()과는 달리, 이 함수는 상대 URL을 그대로 유지합니다. 문자열은 암시적으로 URL로 변환되므로, 이 함수는 문자열을 인수로 받아 호출할 수 있으며, 이 경우 URL을 반환합니다.

resolvedUrl()도 참조하십시오 .

vector2d vector2d(real x, real y)

지정된 ` x ` 및 ` y ` 값을 가진 `vector2d`를 반환합니다.

vector3d vector3d(real x, real y, real z)

지정된 ` x`, ` y` 및 ` z ` 값을 가진 vector3d를 반환합니다.

vector4d vector4d(real x, real y, real z, real w)

지정된 x, y, z 및 w 값을 가진 vector4d를 반환합니다.

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