qt - QML 依赖性/可重用性(静态代码)检查器

标签 qt dependencies qml qtquick2 reusability

为了编写可重用的 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}

截图: enter image description here

(2>&1 需要解析 stderr,这是显示错误消息的地方)

关于qt - QML 依赖性/可重用性(静态代码)检查器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41586077/

相关文章:

Qt QNetworkAccessManager 和多个QNetworkReply

maven - HelloWorld EJB 依赖注入(inject)

php - 依赖注入(inject)如何知道要传递哪些变量?

qt - 学习 QML 的资源?

performance - 为什么创建动态 qml 对象这么慢,有哪些合理的替代方案?

c++ - Qt jom.exe错误2

c++ - 如何使用 Qt 在代码中访问提升的小部件的 UI 元素?

java - 从类中获取完整的类路径

c++ - Valgrind 显示简单 QML 应用程序的许多警告/错误

android - Qt:如何更改 Android 应用程序名称?