为了编写可重用的 QML 代码,我正在寻找一个(静态代码)检查器,它可以检测不同 qml 文件之间不需要的依赖关系。
举一个例子,其中 B.qml 依赖于 A.qml 中的标识符:
A.qml
Item {
id: dependencyId
...
delegate: B {}
}
B.qml
Item {
id: delegateB
...
text: dependencyId.text
}
由于 B.qml 的文本元素依赖于 A.qml 中的标识符,因此无法正确重用此代码。
只要 A.qml 中 Item 的 id 不改变,这段代码就会编译/运行,因此不会注意到依赖关系。 我尝试了QmlLint,但这没有给出错误。
是否有可用于检查此问题的 QML 静态代码检查器?
最佳答案
在为每个 *.qml 文件运行 qmlscene 的 sourceDirectory 中添加了自定义构建步骤,仅过滤“引用”错误的结果。
谢谢derM有关使用 qmlscene 的提示。
命令:查找
参数: . -name '*.qml' -exec qmlscene --quit {}\; 2>&1 | grep -rnis '引用'
工作目录: %{sourceDir}
(2>&1 需要解析 stderr,这是显示错误消息的地方)
关于qt - QML 依赖性/可重用性(静态代码)检查器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41586077/