자격 없음
이 경고 카테고리의 철자는 [unqualified]
입니다.
자격 없는 액세스
무슨 일이 있었나요?
ID가 없는 상위 요소에 액세스했습니다.
이것이 왜 나쁜가요?
코드를 읽기 어렵게 만들고 성능을 저해합니다.
예시
import QtQuick Item { property int helloWorld Item { property int unqualifiedAccess: helloWorld + 1 // not ok: Unqualified access here. } }
이 경고를 해결하려면 ID로 부모 객체를 참조하세요. 현재 객체에 ID가 없는 경우 먼저 ID를 추가해야 합니다.
import QtQuick Item { id: root property int helloWorld Item { property int unqualifiedAccess: root.helloWorld + 1 // ok: this access is qualified now! } }
알 수 없는 첨부/그룹화된 속성 범위
무슨 일이 일어났나요?
찾을 수 없는 첨부된 속성 유형 또는 그룹화된 속성을 사용했습니다. 이는 오타 또는 누락된 QML 모듈 종속성으로 인해 발생할 수 있습니다.
참고: 외부 종속성이 있는 QML 모듈을 가져오는 경우 해당 모듈이 실제로 설치되어 있고 가져오기 경로 내에 있는지 확인하세요.
이것이 왜 나쁜가요?
첨부된 속성 범위를 알 수 없거나 그룹화된 속성을 알 수 없는 컴포넌트는 런타임에 생성되지 않고 대신 null이 됩니다.
예시
Item
의 (존재하지 않는) 첨부 속성 또는 Item
의 (존재하지 않는) 그룹화된 속성 grouped
을 사용하려고 해 보겠습니다:
import QtQuick Item { Item.helloAttached: 44 // not ok: unknown attached property scope Item. [unqualified] grouped.helloGrouped: 44 // not ok: unknown grouped property scope grouped. [unqualified] }
실제로 Item 에는 item
이라는 첨부된 유형이나 그룹화된 속성이 없습니다. 이 경고를 수정하려면 첨부된 유형과 그룹화된 속성을 제거하세요.
첨부된 프로퍼티를 사용하는 방법은 첨부된 프로퍼티 및 첨부된 시그널 핸들러를, 그룹화된 프로퍼티를 사용하는 방법은 그룹화된 프로퍼티를 참조하세요.
핸들러에 일치하는 신호를 찾을 수 없음
무슨 일인가요?
찾을 수 없는 신호에 신호 처리 기를 사용했습니다. 이는 신호 처리기에 오타가 있거나 QML 모듈 종속성이 누락되었기 때문일 수 있습니다.
참고: 신호 처리기의 이름은 대문자로 된 신호 이름과 연결된 on
입니다. 예를 들어 onHelloWorld
은 helloWorld
신호를 처리하고 on_helloWorld
은 _helloWorld
을 처리합니다.
참고: 외부 종속성이 있는 QML 모듈을 가져오는 경우 해당 모듈이 실제로 설치되어 있고 가져오기 경로 내에 있는지 확인하세요.
이것이 왜 나쁜가요?
알 수 없는 시그널 핸들러가 있는 컴포넌트는 런타임에 생성되지 않고 대신 null이 됩니다.
예시
(존재하지 않는) 신호 mySignal
에 대한 신호 핸들러를 작성해 보겠습니다:
import QtQuick Item { onMySignal: console.log("hello") // not ok: no matching signal found for handler "onMySignal" [unqualified] }
실제로 이 Item 에는 mySignal
이라는 신호가 없습니다. 이 경고를 수정하려면 시그널 핸들러를 제거하거나 누락된 시그널을 추가하세요.
연결에서 암시적으로 시그널 핸들러를 정의하는 것은 더 이상 사용되지 않습니다.
무슨 일이 있었나요?
Connections 유형에 신호 처리기를 사용했습니다.
이것이 왜 나쁜가요?
더 이상 사용되지 않습니다.
예시
import QtQuick Window { id: root property int myInt Connections { target: root onMyIntChanged: console.log("new int", myInt) } }
이 경고를 해결하려면 신호 처리기 바인딩을 함수로 바꾸세요:
import QtQuick Window { id: root property int myInt Connections { target: root function onMyIntChanged() { console.log("new int", myInt) } } }
QML 코딩 규칙 - 정규화되지 않은 액세스도참조하세요 .
© 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.