【问题标题】:QML dependency/reuseability (static code) checkerQML 依赖/可重用性(静态代码)检查器
【发布时间】:2017-05-25 23:03:21
【问题描述】:

为了编写可重用的 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 静态代码检查器可以检查这个?

【问题讨论】:

  • 您可以在每个文件上使用qmlscene。如果有这样的依赖,会引发ReferenceError
  • 正是我想要的(用 qmllint 完成),谢谢!添加了 --quit 选项,以将其合并到我的构建中。

标签: qt dependencies qml qtquick2 reusability


【解决方案1】:

在为每个 *.qml 文件运行 qmlscene 的 sourceDirectory 中添加了自定义构建步骤,仅在“参考”错误时过滤结果。

感谢derM 提供有关使用 qmlscene 的提示。

命令:查找

参数:。 -name '*.qml' -exec qmlscene --quit {} \; 2>&1 | grep -rnis '参考'

工作目录: %{sourceDir}

截图:

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

【讨论】:

    猜你喜欢
    • 2014-12-11
    • 2020-02-26
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 2016-09-25
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多