構文
この警告カテゴリーはqmllintによって[syntax]
。
ネストされたインラインコンポーネントはサポートされていません
何が起こりましたか?
別のインラインコンポーネントの中にインラインコンポーネントを定義しました。
これはなぜ悪いのでしょうか?
QML言語ではインラインコンポーネントを入れ子にすることはできません。インラインコンポーネントは常にQMLファイルのルートアイテムの中で定義してください。
例
import QtQuick Item { component Correct: Item { component Evil: Item { ... } ... } }
この警告を修正するには、すべてのコンポーネントをQMLファイルのルート項目に移動してください。
import QtQuick Item { component NotEvilAnymore: Item { ... } component Correct: Item { ... } }
インラインコンポーネントの宣言の後には必ずtypenameを付けてください。
何が起こったのでしょうか?
インラインコンポーネントを無効な基本型で定義しました。
これはなぜ悪いのでしょうか?
インラインコンポーネントには継承するための基底型が必要です。
例
この場合、someProperty
はプロパティ名であり、有効な型名ではありません。この警告を修正するには、コンポーネントの基本型として有効な型を使用してください:
import QtQuick Item { property Item someProperty component InlineComponent: Item { ... } }
無効なエイリアス式: イニシャライザが必要です。
何が起こったのでしょうか?
エイリアス・プロパティを定義せずに、プロパティのエイリアスを定義しました。
これはなぜ悪いのでしょうか?
エイリアス・プロパティは常に、その定義にエイリアス・プロパティまたはidを持つ必要があります。
例
この警告を修正するには、エイリアスを通常のプロパティに置き換えるか、不足しているエイリアス・プロパティを追加してください:
import QtQuick Item { id: root property int someProperty property alias withAliasedProperty: root.someProperty }
無効なエイリアス式: エイリアスできるのは、idとフィールド・メンバ式だけです。
何が起こったのでしょうか?
ID またはフィールド・メンバ式以外の式をエイリアスにするプロパティ・エイリアスを定義しました。
フィールド・メンバ式は、someId.someProperty
という形式の式です。
これはなぜ悪いのでしょうか?
エイリアス・プロパティは常にその定義にエイリアス・プロパティを持つ必要があり、ID やフィールド・メンバ式以外の式にバインドすることはできません。
例
この警告を修正するには、エイリアスを通常のプロパティに置き換えるか、idまたはフィールド・メンバ式にバインドします:
import QtQuick Item { id: root property int p property int someProperty: p + 1 property alias alternative: root.p }
idの後には識別子を続けなければなりません。
何が起こったのでしょうか?
値なしでidを定義しました。
これはなぜ悪いのでしょうか?
QML言語は空のidを許しません。
例
import QtQuick Item { id:; }
この警告を修正するには、id を有効な名前にバインドしてください:
import QtQuick Item { id: root; }
idの解析に失敗しました
何が起こったのでしょうか?
idを名前以外の式にバインドしました。
これはなぜ悪いのでしょうか?
QML言語では、idへのバインディングとして名前しか使用できません。
例
import QtQuick Item { property int a property int b function f() { if (true) return a return b } id: f() }
この警告を修正するには、idを有効な名前にバインドするか、プロパティを宣言してバインドを設定してください:
import QtQuick Item { property int a property int b function f() { if (true) return a return b } id: someItem // it would be confusing to call it `f` like the function property int alternative: f() }
QMLオブジェクトでないオブジェクトをリストメンバーとして宣言する
何が起こったのでしょうか?
オブジェクト以外の式をオブジェクトのリストに追加しました。
これはなぜ悪いのでしょうか?
QML言語では、オブジェクトリストの中にオブジェクトを入れることしかできません。
例
この警告を修正するには、有効なオブジェクト型を使用するか、リストからその項目を削除してください:
インラインコンポーネント内で宣言された列挙型は無視される
何が起こったのでしょうか?
インラインコンポーネントの内部で列挙型を定義しました。
これはなぜ悪いのでしょうか?
QML言語では、enumの定義はQMLファイルのルートアイテムの内部でのみ許可されています。インラインコンポーネントの内部で宣言された列挙型は、インラインコンポーネントの内部であっても使用できません。ルートでないQMLオブジェクトの内部で宣言された列挙型も同様です。
例
この警告を修正するには、enum宣言をQMLファイルのルート要素に移動してください:
プラグマへの不明な引数
何が起こったのでしょうか?
プラグマに無効な引数を指定しました。
なぜ悪いのですか?
このプラグマは何の効果も持ちません。
例
pragma ComponentBehavior: Buond
import QtQuick
Item {
}
プラグマを削除するか、タイプミスを修正することで、この警告を修正することができます:
pragma ComponentBehavior: Bound
import QtQuick
Item {
}
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。