이 페이지에서

구문

qmllint에서는 이 경고 범주를 ‘ [syntax] ’로 표기합니다.

중첩된 인라인 컴포넌트는 지원되지 않습니다

무슨 일이 발생했나요?

다른 인라인 컴포넌트 내부에 인라인 컴포넌트를 정의했습니다.

왜 문제가 됩니까?

QML 언어는 중첩된 인라인 컴포넌트를 허용하지 않습니다. 인라인 컴포넌트는 항상 QML 파일의 루트 항목 내에서 정의해야 합니다.

예시

import QtQuick

Item {
    component Correct: Item {
        component Evil: Item { ... }
        ...
    }
}

이 경고를 해결하려면 모든 컴포넌트를 QML 파일의 루트 항목으로 이동하십시오.

import QtQuick

Item {
    component NotEvilAnymore: Item { ... }
    component Correct: Item {
        ...
    }
}

인라인 컴포넌트 선언 뒤에는 반드시 타입명이 따라와야 합니다.

무슨 일이 발생한 것일까요?

유효하지 않은 기본 유형을 사용하여 인라인 컴포넌트를 정의했습니다.

이것이 왜 문제일까요?

인라인 컴포넌트에는 상속받을 기본 유형이 필요합니다.

예시

import QtQuick

Item {
    property Item someProperty
    component InlineComponent: someProperty {}
}

이 경우, ` someProperty `는 속성 이름이므로 유효한 유형 이름이 아닙니다. 이 경고를 해결하려면 컴포넌트의 기본 유형으로 유효한 `Type`을 사용하십시오:

import QtQuick

Item {
    property Item someProperty
    component InlineComponent: Item { ... }
}

잘못된 별칭 표현식: 초기화자가 필요합니다

무슨 일이 일어난 걸까요?

별칭 으로 지정된 속성 자체 없이 속성 별칭만 정의했습니다.

왜 문제가 될까요?

별칭 속성의 정의에는 항상 해당 별칭이 지칭하는 속성이나 ID가 포함되어야 합니다.

예시

import QtQuick

Item {
    id: root
    property int someProperty
    property alias aliasProperty
}

이 경고를 해결하려면 별칭을 일반 속성으로 바꾸거나 누락된 대상 속성을 추가하십시오:

import QtQuick

Item {
    id: root
    property int someProperty
    property alias withAliasedProperty: root.someProperty
}

잘못된 별칭 표현식: ID와 필드 멤버 표현식만 별칭으로 지정할 수 있습니다

무슨 일이 일어난 것일까요?

ID나 필드 멤버 표현식이 아닌 다른 표현식을 별칭으로 지정하는 속성 별칭을 정의했습니다.

필드 멤버 표현식은 someId.someProperty 형식의 표현식입니다.

왜 문제가 될까요?

별칭 속성은 정의에 항상 별칭이 지정된 속성을 포함해야 하며, ID 및 필드 멤버 표현식 이외의 다른 표현식에는 바인딩할 수 없습니다.

예시

import QtQuick

Item {
    property int p
    property alias someProperty: p + 1
}

이 경고를 해결하려면 별칭을 일반 속성으로 바꾸거나 ID 또는 필드 멤버 식에 바인딩하십시오.

import QtQuick

Item {
    id: root
    property int p
    property int someProperty: p + 1
    property alias alternative: root.p
}

ID 뒤에는 식별자가 와야 합니다

무슨 일이 일어났나요?

값이 없는 ID 를 정의했습니다.

왜 문제가 될까요?

QML 언어는 빈 ID를 허용하지 않습니다.

예시

import QtQuick

Item {
    id:;
}

이 경고를 해결하려면 id를 유효한 이름에 바인딩하세요:

import QtQuick

Item {
    id: root;
}

ID 구문 분석에 실패했습니다

무슨 일이 일어난 것일까요?

ID 를 이름이 아닌 표현식에 바인딩했습니다.

왜 문제가 될까요?

QML 언어는 ID에 대한 바인딩으로 이름만 허용하며, 더 복잡한 표현식은 사용할 수 없습니다.

예시

import QtQuick

Item {
    property int a
    property int b
    function f() {
        if (true)
            return a
        return b
    }

    id: f()
}

이 경고를 해결하려면 ID를 유효한 이름에 바인딩하거나, 속성을 선언하고 바인딩을 설정하십시오:

import QtQuick

Item {
    property int a
    property int b
    function f() {
        if (true)
            return a
        return b
    }

    id: someItem // it would be confusing to call it `f` like the function
    property int alternative: f()
}

QML 객체가 아닌 객체를 리스트 멤버로 선언

무슨 일이 일어났나요?

객체가 아닌 표현식을 객체 목록에 추가했습니다.

왜 문제가 될까요?

QML 언어는 객체 목록에 오직 객체만 포함할 수 있도록 허용합니다.

예시

import QtQuick

Item {
    property int hello
    property list<Item> myList: [
        Item {}, hello{}
    ]
}

이 경고를 해결하려면 유효한 객체 유형을 사용하거나 목록에서 해당 항목을 제거하십시오:

import QtQuick

Item {
    component Hello: Item {}
    property list<Item> myList: [
        Item {}, Hello{}
    ]
}

pragma에 알 수 없는 인수가 지정되었습니다

무슨 일이 일어났나요?

pragma에 유효하지 않은 인수를 지정했습니다.

왜 문제가 됩니까?

프래그마가 아무런 효과도 발휘하지 못합니다.

예시

pragma ComponentBehavior: Buond
import QtQuick

Item {
}

프라그마를 제거하거나 오타를 수정하여 이 경고를 해결할 수 있습니다:

pragma ComponentBehavior: Bound
import QtQuick

Item {
}

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