qmllint
qmllintはQtに同梱されているツールで、QMLファイルの構文の妥当性を検証します。また、QMLのアンチパターンについても警告を発します。特定の警告タイプを無効にしたい場合は、コマンドラインで--help
を渡すことで、適切なフラグを見つけることができます。
デフォルトでは、いくつかの問題は警告として出力されます。警告の数が--max-warnings
で設定できる制限を超えた場合、終了コードは0以外になります。しかし、マイナーな問題(未使用のインポートなど)はデフォルトでは単なる情報メッセージで、終了コードに影響することはありません。qmllintは非常に設定しやすく、警告を無効にしたり、警告の扱い方を変更したりできます。ユーザはどのような問題でも自由に警告や情報メッセージに変えたり、警告を完全に無効にしたりすることができます。
qmllint は以下のような警告を出します:
- プロパティへの修飾されていないアクセス
- 一致するシグナルを持たないシグナルハンドラの使用
- QMLにおけるwith文の使用
- QMLコードのコンパイルに関する問題
- 未使用のインポート
- 非推奨のコンポーネントやプロパティ
- その他多くの問題
qmllint の警告やエラーの修正方法についてはQML Lint Warning and Errorsを参照してください。
注意: 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
を使って、ファイル中の警告を一時的に無効にすることができます。
1行で警告が表示される場合、行末で警告を無効にすることができます:
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 は で始まる一行コメントをすべてディレクティブとして解釈します。 したがって、警告を有効または無効にしたい場合を除き、この方法でコメントを始めることはできません。
注意: 上の例のように、すべての警告を無効にするのではなく、無効にしたい 警告や警告のリストを明示的に指定する方が望ましいです。これは、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 を返します。特別なファイル名 '-' を使って、ファイルではなく標準出力に書き込むことができます。これを使うと、コミット前フックやCIテストにqmllintを簡単に組み込むことができます。
Type Description FilesとQt Quick Tools and Utilitiesも参照して ください。
© 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.