このページでは

修飾されていない

この警告カテゴリは、qmllint では「[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 でのシグナルハンドラの暗黙的な定義は非推奨です

何が起きたのでしょうか?

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 コーディング規約 - 修飾なしのアクセス。

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