適切な関数の使用
この警告カテゴリは、qmllint によって「[use-proper-function] 」と表記されます。
プロパティがバリアントプロパティです:メソッドである場合とそうでない場合があります
何が起きたのか?
var 型のプロパティを、呼び出し可能な関数であるかのように使用しました。
なぜこれが問題なのでしょうか?
これはコードの可読性に影響を与えます。また、プロパティに呼び出し可能な関数が含まれていない場合、QML エンジンはエラーを発生させ、QML ツールは特定のメソッドの最適化を適用できなくなります。
例
import QtQuick
Item {
property var fun: () => console.log("Hello")
Component.onCompleted: { fun(); }
}この警告を解消するには、fun を呼び出し可能な関数として宣言してください:
import QtQuick
Item {
function fun() {
console.log("Hello")
}
Component.onCompleted: { fun(); }
}Property は QJSValue プロパティです。メソッドである場合もあれば、そうでない場合もあります
何が起きたのでしょうか?
QJSValue 型のプロパティを、呼び出し可能な関数であるかのように使用しました。
注: QJSValue 型のプロパティは 、C++ でのみ定義できます。
なぜこれが問題なのでしょうか?
そのプロパティは、おそらく呼び出されることを意図したものではなく、実行時に QML エンジンでエラーが発生することになります。
例
import QtQuick
Rectangle {
// Rectangle has a property gradient of the type QJSValue
Component.onCompleted: { console.log(gradient()); }
}この警告を解消するには、gradient の呼び出しを削除してください:
import QtQuick
Item {
// Rectangle has a property gradient of the type QJSValue
Component.onCompleted: { console.log(gradient); }
}あるいは、そのプロパティの作成者である場合は、プロパティの定義を通常の `Q_INVOKABLE `メソッドまたはスロットに置き換えることを検討してください。これは、その関数が QML 内で変更されることが一切想定されていない場合にのみ可能です。実際にコールバックを格納する必要がある場合は、残念ながら解決策はありません。
シグナルがプロパティによってシャドウされています
何が起きたのでしょうか?
プロパティによってシグナルが隠蔽されている状態でシグナルを呼び出したか、あるいはプロパティでシグナルを隠蔽してしまいました。
なぜこれが問題なのでしょうか?
呼び出し元は、おそらくシグナルを呼び出すことを期待しており、シャドウイングされているプロパティを呼び出すことを想定していなかったでしょう。これにより、実行時に QML エンジンでエラーが発生する可能性があります。
例
import QtQuick
Item {
component Base: Item {
signal helloSignal
}
Base {
property int helloSignal // shadows helloSignal inherited from Base
Component.onCompleted: { helloSignal(); }
}
}この警告を解消するには、シャドウしているプロパティの名前を変更してください:
import QtQuick
Item {
component Base: Item {
signal helloSignal
}
Base {
property int helloSignal2 // does not shadow anymore
Component.onCompleted: { helloSignal(); }
}
}メソッドがプロパティによってシャドウされている
{シグナルがプロパティによってシャドウされている}を参照してください。
スロットがプロパティによってシャドウイングされている
「{シグナルがプロパティによってシャドウされている}」を参照してください。
プロパティはメソッドではありません
何が起きたのでしょうか?
var またはQJSValue 以外の型のプロパティを、呼び出し可能な関数であるかのように使用しました。
なぜこれが問題なのでしょうか?
そのプロパティは呼び出すことができないため、実行時に QML エンジンでエラーが発生します。
例
この警告を解消するには、その呼び出しを削除するか、hello を関数として定義してください:
import QtQuick
Item {
property int hello
Component.onCompleted: { console.log(hello); }
// alternative:
function helloAlternative() { ... }
Component.onCompleted: { console.log(helloAlternative()); }
}© 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.