이 페이지에서

list QML Value Type

QML 객체 목록. 더 보기...

상세 설명

list 유형은 QML 객체 또는 값의 목록을 나타냅니다.

list 유형의 속성은 기본적으로 비어 있습니다.

list 는 QML 객체나 값 유형의 값을 저장할 수 있습니다.

C++과 통합할 때, C++에서 QML로 전달된 모든 QQmlListProperty 값은 자동으로 list 값으로 변환되며, 그 반대의 경우도 마찬가지임을 유의하십시오.

T 마찬가지로, 등록된 값 유형인 QList<T> 의 은 자동으로 list 값으로 변환되며, 그 반대의 경우도 마찬가지입니다.

목록 유형 사용

예를 들어, Item 유형에는 다음과 같이 할당하고 사용할 수 있는 states 목록 유형 속성이 있습니다:

import QtQuick

Item {
    width: 100; height: 100

    states: [
        State { name: "activated" },
        State { name: "deactivated" }
    ]

    Component.onCompleted: {
        console.log("Name of first state:", states[0].name)
        for (var i = 0; i < states.length; i++)
            console.log("state", i, states[i].name)
    }
}

정의된 State 객체들은 정의된 순서대로 states 목록에 추가됩니다.

목록에 객체가 하나만 포함된 경우, 대괄호를 생략할 수 있습니다:

import QtQuick

Item {
    width: 100; height: 100
    states: State { name: "activated" }
}

QML에서 사용자 정의 목록 속성을 선언할 수도 있습니다:

import QtQml

QtObject {
    property list<int> intList: [1, 2, 3, 4]
    property list<QtObject> objectList
}

리스트는 자바스크립트 배열과 매우 유사하게 사용할 수 있습니다. 예를 들어:

  • 값은 쉼표로 구분된 값을 사용하여 ` [] ` 대괄호 구문을 통해 할당됩니다.
  • length 속성은 목록에 포함된 항목의 개수를 반환합니다.
  • [index] 구문을 사용하여 리스트의 값에 접근할 수 있습니다
  • push() 을 사용하여 항목을 추가할 수 있습니다
  • 목록의 length 속성을 설정하여 목록을 잘라내거나 확장할 수 있습니다.

그러나 현재 범위를 벗어난 인덱스에 값을 할당하여 목록을 자동으로 확장할 수는 없습니다. 또한, 객체 목록에 ` null ` 값을 삽입하면, 해당 값들은 기본 QQmlListProperty 의 ` nullptr ` 항목으로 변환됩니다.

값 유형의 리스트는 또 다른 중요한 측면에서 JavaScript 배열과 다릅니다. 길이를 설정하여 리스트를 확장해도 undefined 항목이 생성되지 않고, 대신 해당 값 유형의 기본 생성된 인스턴스가 생성됩니다.

마찬가지로, 객체 유형의 리스트를 이러한 방식으로 확장하면 undefined 항목이 아닌 null 항목이 생성됩니다.

이 값 유형은 QML 언어에서 제공합니다.

QML 값 유형도 참조하십시오 .

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