未解決の型
このカテゴリには以下の警告が含まれます:
- 型は使用されているが解決されていない
- メソッドの戻り値の型に型が見つかりませんでした。
- メソッドのパラメータの型に型が見つかりませんでした。
- Property has incomplete type; インポートが見つからない可能性があります。
- 依存関係のエントリがないか、宣言的に型が公開されていない可能性があります。
- 依存関係のエントリがないか、宣言的に型が公開されていない可能性があります。
- ネームスペースに型が見つかりません。
これらの警告は、QMLモジュールを使っているか書いているかによりますが、通常、インポートがないか、QMLモジュールが不完全であることを示しています。
この警告カテゴリーはqmllintによって[unresolved-type]
。
QMLモジュールをお使いの方へ
何が起こりましたか?
QMLツールで検出されなかった型を使用しました。通常、typoの可能性、importの欠落、importパスの不適切な設定を示します。
なぜ悪いのですか?
その型はQMLツールでも見つからず、QMLエンジンでも見つからない可能性が高いです。
例
タイプミス
import QtQuick Itme { ... }
この警告を修正するには、タイプミスを修正してください:
import QtQuick Item { ... }
import文の欠落
Item { ... }
この警告を修正するには、Item
を公開しているモジュールをインポートしてください:
import QtQuick Item { ... }
import文を追加しても解決しない場合は、importパスを見てください。
この警告がQML Language Server 経由で表示される場合、セットアップが不完全である可能性があります。
QMLモジュール作者の方へ
どうしたのですか?
QMLツールでQMLモジュールの型が見つかりません。この型はQMLに直接、あるいは間接的に公開している型です:
- 基本型
- プロパティ型
- シグナル、スロット、
Q_INVOKABLE
パラメータ型 Q_INVOKABLE
戻り値型
未解決の型がモジュールから公開されている場合、宣言的な型登録が行われていない可能性があります。
そうでない場合、あなたのQMLモジュールは未解決の型を公開しているQMLモジュールに宣言されていない依存関係を持つ可能性があります。
これはなぜでしょうか?
QMLツールはあなたの型に対して動作しませんし、あなたのQMLモジュールのユーザは修正できない偽の警告を受けることになります。
例
型の登録がない
宣言的に型を登録する方法についてはC++ から QML 型を定義するを参照してください。QMLに直接・間接的に公開されるすべての型と列挙型が登録されていることを確認してください。
QMLモジュールの依存関係の欠落
MyItem
を QML モジュールの C++ 型とします:
class MyItem: public QQuickItem { ... QML_ELEMENT ... Q_PROPERTY(SomeType someProperty READ someProperty WRITE setSomeProperty NOTIFY somePropertyChanged) ... }
QQuickItem
またはSomeType
を最初に解決できないと、QMLツールはMyItem
を正しく解決できません。QQuickItem
がQtQuick
に、SomeType
がSomeModule
にある場合、QMLモジュール定義にこれらのC++依存関係を記述する必要があります。
そのためには、QMLモジュール定義に依存関係を追加します。例えば、DEPENDENCIES
のようにします:
qt_add_qml_module( ... DEPENDENCIES QtQuick # for QQuickItem to be resolved SomeModule # for SomeType to be resolved )
詳しくはQML モジュール間の C++ 依存関係の宣言を参照してください。
© 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.