qmllint
qmllint는 Qt와 함께 제공되는 도구로, QML 파일의 문법적 유효성을 검증합니다. 또한 일부 QML 안티 패턴에 대해 경고합니다. 특정 경고 유형을 비활성화하려면 명령줄에 --help
을 전달하여 적절한 플래그를 찾을 수 있습니다.
기본적으로 일부 문제는 경고가 인쇄됩니다. --max-warnings
으로 구성할 수 있는 한도보다 많은 경고가 있는 경우 종료 코드는 0이 아닙니다. 그러나 사소한 문제(예: 사용하지 않은 가져오기)는 기본적으로 정보 메시지일 뿐이며 종료 코드에 영향을 미치지 않습니다. qmllint는 매우 구성 가능하며 경고를 비활성화하거나 처리 방식을 변경할 수 있습니다. 사용자는 모든 문제를 경고나 정보 메시지로 자유롭게 전환하거나 완전히 비활성화할 수 있습니다.
qmllint가 경고하는 사항
- 자격이 없는 속성 액세스
- 일치하는 시그널이 없는 시그널 핸들러 사용
- QML에서 WITH 문 사용
- QML 코드 컴파일과 관련된 문제
- 사용되지 않는 임포트
- 더 이상 사용되지 않는 컴포넌트 및 프로퍼티
- 그리고 다른 많은 것들
qmllint 경고 및 오류를 수정하는 방법은 QML 보푸라기 경고 및 오류를 참조하세요.
참고: qmllint가 제대로 작동하려면 유형 정보가 필요합니다. 이 정보는 가져오기 경로에 있는 QML 모듈에서 제공합니다. 현재 디렉토리와 Qt의 기본 제공 유형에 대한 가져오기 경로가 기본적으로 가져오기 경로로 사용됩니다. 기본값에 포함되지 않은 가져오기 경로를 더 추가하려면 -I
플래그를 통해 추가하세요.
사용 가능한 모든 명령줄 옵션에 대한 개요와 설명을 보려면 qmllint --help
을 실행하세요.
컴파일러 경고
qmllint는 qmlsc로 컴파일할 수 없는 코드에 대해 경고할 수 있습니다.
이러한 경고는 기본적으로 활성화되어 있지 않습니다. 이를 활성화하려면 --compiler warning
을 지정하거나 설정 파일을 적절히 조정하세요.
컴포넌트 및 속성을 더 이상 사용되지 않는 것으로 표시
qmllint를 사용하면 프로퍼티와 컴포넌트를 모두 사용 중단된 것으로 표시할 수 있습니다:
@Deprecated { reason: "Use NewCustomText instead" } Text { @Deprecated { reason: "Use newProperty instead" } property int oldProperty property int newProperty Component.onCompleted: console.log(oldProperty); // Warning: XY.qml:8:40: Property "oldProperty" is deprecated (Reason: Use newProperty instead) }
컴포넌트가 생성될 때마다 컴포넌트에 대한 사용 중단 경고가 표시됩니다.
인라인으로 경고 비활성화하기
// qmllint disable
을 사용하여 언제든지 파일에서 경고를 일시적으로 비활성화할 수 있습니다.
한 줄에서 경고를 생성하는 경우 한 줄의 끝에서 이 작업을 수행할 수 있습니다:
Item {
property string foo
Item {
property string bar: foo // qmllint disable unqualified
}
}
또는 // qmllint disable
을 포함하는 줄에만 주석을 넣고 // qmllint enable
으로 끝내면 줄 블록에 대한 주석을 비활성화할 수 있습니다:
Item { property string foo Item { // qmllint disable unqualified property string bar: foo property string bar2: foo // qmllint enable unqualified } }
qmllint는 qmllint
로 시작하는 모든 한 줄 주석을 지시어로 해석합니다. 따라서 경고를 사용하거나 사용하지 않으려는 경우가 아니라면 이러한 방식으로 댓글을 시작하면 안 됩니다.
참고: 위의 예에서와 같이 모든 경고를 비활성화하는 대신 비활성화하려는 경고 또는 경고 목록을 명시적으로 지정하는 것이 좋습니다. qmllint disable
뒤에 경고 카테고리를 나열하면 됩니다(이름은 --help
)에 나열된 옵션과 동일합니다).
설정
명령줄 옵션을 전달하는 것 외에도 설정 파일을 통해 qmllint를 구성할 수도 있습니다. --write-defaults
명령줄에서 설정 파일을 생성할 수 있습니다.
설정 파일의 이름은 .qmllint.ini
이며 다음과 같습니다:
[General] AdditionalQmlImportPaths= DisableDefaultImports=false OverwriteImportTypes= ResourcePath= [Warnings] BadSignalHandler=warning Deprecated=warning ImportFailure=warning InheritanceCycle=warning MultilineStrings=info PropertyAlias=warning RequiredProperty=warning TypeError=warning UnknownProperty=warning UnqualifiedAccess=warning UnusedImports=info WithStatement=warning
경고 수준은 명령줄 옵션과 마찬가지로 info
, warning
또는 disable
로 설정할 수 있습니다.
qmllint는 자동으로 린팅 중인 qml 파일의 위치에서 설정 파일을 찾습니다. 또한 모든 상위 디렉터리를 검색하여 이 파일을 찾고 그 안에 있는 설정을 자동으로 적용합니다. --ignore-settings
을 사용하여 이 동작을 비활성화할 수 있습니다. 설정에서 경고 수준보다 우선하는 명령줄 매개변수를 지정하여 언제든지 이러한 기본값을 재정의할 수 있습니다.
스크립팅
qmllint는 --json <file>
옵션을 통해 경고 메시지, 경고의 파일 및 줄 위치, 심각도 수준과 함께 유효한 JSON을 반환하는 JSON을 작성하거나 출력할 수 있습니다. 특수 파일 이름 '-'를 사용하면 파일 대신 stdout에 쓸 수 있습니다. 이렇게 하면 커밋 전 훅이나 CI 테스트에 qmllint를 더 쉽게 통합할 수 있습니다.
유형 설명 파일 및 Qt Quick 도구 및 유틸리티도참조하세요 .
© 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.