不適格

この警告カテゴリーは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モジュールをインポートする場合、それらが実際にインストールされているか、インポートパスの中にあるかどうかを確認してください。

なぜ悪いのか?

付属プロパティのスコープが不明なコンポーネントや、グループ化されたプロパティが不明なコンポーネントは、実行時に作成されません。

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 というグループ化されたプロパティもありません。この警告を修正するには、attachedタイプとgroupedプロパティを削除してください。

アタッチド・プロパティの使用方法については「アタッチド・プロパティとアタッチド・シグナル・ハンドラ」を、グループ化プロパティの使用方法については「グループ化プロパティ」を参照してください。

ハンドラに一致するシグナルが見つかりません

何が起こったのでしょうか?

シグナルハンドラを使用したシグナルが見つかりません。これは、シグナルハンドラのタイプミスか、QMLモジュールの依存関係が見つからないことが原因です。

注意: シグナルハンドラの名前はon にシグナル名を大文字で連結したものです。例えば、onHelloWorld はシグナルhelloWorld を処理し、on_helloWorld_helloWorld を処理します。

注意 : QMLモジュールの外部依存関係をインポートする場合、それらが実際にインストー ルされているか、インポートパスの中に含まれているかを確認してください。

これはなぜ悪いのでしょうか?

未知のシグナルハンドラを持つコンポーネントは実行時に生成されません。

(存在しない)シグナル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 Coding Conventions - Unqualified Accessも参照してください

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