不適格
この警告カテゴリーは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) } } }
© 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.