提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:鲍佳佳|2021-09-06 10:01:06.500|阅读 187 次
概述:QML 工具是发展最快的领域之一,自 Qt 5.15 以来添加了大量新功能。在这里,我们将展示静态分析和格式化 QML 领域的进展和未来计划。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
【Qt开发主流库:Qtitan组件集】
QML 工具是发展最快的领域之一,自 Qt 5.15 以来添加了大量新功能。在这里,我们将展示静态分析和格式化 QML 领域的进展和未来计划。
qmlint 自从在 Qt 5.4 中引入以来已经发展了很多。它最初是一个简单的语法检查器。从那时起,它获得了警告不合格访问、“with”语句和信号注入以及其他各种违反最佳实践的能力。除了性能大幅提升之外,这里仅介绍 qmllint 中的一些新功能:
在 Qt 6.2 中,如果您使用新的 QML 模块 CMake API,您将始终拥有${TARGETNAME}_qmllint模块的目标。这意味着您可以调用 qmllint 而不必担心导入路径或 linting 所有文件,因为这一切都将由目标自动处理。
在接下来的几周内,将在一系列博客文章中提供有关 QML 模块 API 的更多详细信息。
您现在可以将组件和属性标记为已弃用,这在 C++ 中已经存在很长时间了:
import QtQuick Text { @Deprecated { reason: "Use newProperty instead!" } property int oldProperty property int newProperty Component.onCompleted: console.log(oldProperty); // Warning: XY.qml:8:40: Property "oldProperty" is deprecated (Reason: Use newProperty instead!) }
这将使您更容易就公共 API 中的更改进行交流。
您现在可以按类别禁用警告,例如默认情况下 qmllint 会通知您有关未使用的导入:
import QtQuick import QtQuick3D // Info: DEM.qml:2:1: Unused import at DEM.qml:2:1 Text { id: textElement text: "Hello world!" anchors.centerIn: parent }
如果您愿意,现在可以通过传递--unused-imports disable. 或者,您可以使用 将这个信息性消息变成一个完整的警告--unused-imports warning。在这种情况下,与所有警告一样,未使用的导入警告将使 qmllint 返回退出代码 1 ;这将导致使用该工具的任何 CI 或预提交挂钩失败。有关qmllint --help警告类别的完整列表,请参阅 的输出。
除了能够通过命令行提供选项之外,qmlint 现在还可以使用设置文件进行配置。这些工作类似于其他 linter 配置文件。
这对于使您的项目准备好在 CI 中使用特别有用。
有时您可能无法立即修复警告,但会发现它在其他地方很有用。因此,我们允许您逐行禁用警告:
import QtQuick Item { width: 50 // This is an unqualified access height: appWindow.height // qmllint disable unqualified // ... }
qmlint 也可以传递--json选项,该选项将使工具以机器可读的格式输出其警告,这对于集成到 CI 和预提交挂钩非常有用。例如,这里有一个应用程序,其中 qmlint 的输出用于在 GitHub 上生成自动代码审查:
即使现在关于 qmllint 的工作仍在进行中,而且 qmllint 将在 Qt 6.3 中大大改进类型检查和更多警告类别。我们还计划使 qmlint 更具可扩展性,以便用户能够根据其项目的特定需求生成自己的警告。
我们使用 QML 来创建漂亮的 GUI,QML 可以用漂亮简洁的方式表达我们想要的东西。IDE/编辑器(例如 Qt Creator)可以帮助我们保持所有代码缩进,以便阅读和查看。有时虽然人们只想从命令行重新格式化它,并获得一个格式良好且可读的 QML 文件。
qmlformat就是为了那个。它重新格式化您的文件,正确缩进它们,并重新格式化 javascript 表达式以使它们漂亮:)。虽然我们在自己的文件上广泛测试了该工具,但我们知道可能会发生错误。作为额外的预防措施,qmlformat 验证重新格式化输出的语义结构是否与源文件的语义结构匹配。
这意味着不能重新格式化有小错误的文件。这并不总是人们想要的:也许你想要让它成形以实际修复它。因此,如果可以解析文件,-f/--force命令行选项将禁用所有检查,并重新格式化文件。
默认情况下qmlformat,QML 对象属性会完全按照您编写它们的顺序保留。传递-n/--normalize的对象属性根据我们的编码约定中规定的规则重新排序。此选项对于将文件保持为标准化格式以及在比较文件时特别有用。
qmlformat 内部使用 qmldom,QML 作为树的内部表示,包含导入、qml 对象、属性定义和绑定。这种表示可以被编辑,每个元素都可以被唯一标识,并且可以以线程安全的方式更新。QML Design Studio 将在内部使用它来编辑 qml 文件,而无需处理更繁琐的 AST。它也是我们正在研究的语言服务器协议实现的基础,使所有新的工具改进在您选择的 IDE 中可用。
冒险家已经可以使用以下命令可视化这个内部结构,目前我们不提供任何稳定性保证:
qmldom --dump <MyQmlFile>
这将返回 QML 文件中包含的主要内容的 json 描述,包括诸如弃用之类的注释。
====================================================
想要了解或购买Qt正版授权的朋友,欢迎
Qt技术交流群现已开通,QQ搜索群号“765444821”或者扫描下方二维码即可加入
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn
文章转载自:通过提供强大的3D CAD数据访问工具并适用于桌面、移动和Web的高级环境3D可视化发动机,HOOPS在提升造船设计和制造流程的效率方面发挥了重要作用。
HOOPS Luminate在汽车行业中的应用具有广泛的潜力和深远的影响。它通过提供高效的3D可视化、虚拟装配与拆解、性能分析、客户定制等功能,帮助汽车制造商在设计、生产和销售过程中提升效率、降低成本并提高产品质量。
在不断发展的软件开发世界中,使工具和框架与最新的平台版本保持同步至关重要,欢迎查阅~
全球航运业对国际贸易至关重要,全球 90% 以上的商品通过海运运输。准确监控和控制这些集装箱的移动对于维持高效的供应链至关重要。手动输入集装箱号码是这一程序的关键部分,它带来了相当大的挑战,例如人为错误和效率低下。
一个跨平台的C++图形用户界面应用程序开发框架。
QtitanRibbon专业全面 & 实现Qt技术的跨平台Ribbon UI组件
QtitanDataGrid一个独特的Qt开发框架产品,吸收了Delphi、C++以及其他语言的优点
QtitanChart性能优异的跨平台Qt类图表组件
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@capbkgr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢