一次性解决所有的QML Invalid property name(M16)

一次性解决所有Invalid property name(M16)

  • 在QtCreator 中编辑qml文件时,由于某些模块导入的信息不完整,导致了一些让人烦恼的红色下划线,但是实际又是可以编译过和运行的。

  • for example

  • 如果是少数情况可以直接在后面或者前面加上:

  • // @disable-check M16

  • 请添加图片描述

  • 如果大量出现,可以考虑直接禁用这个报错:

  • 请添加图片描述

  • 请添加图片描述

  • 然后重新加载下:

  • 请添加图片描述

  • 请添加图片描述

  • 这样所有下划线就消失了;

  • 注意:同样也会禁用掉真正没有的属性

  • 请添加图片描述

  • 看个人选择;

参考:

### QML 实现批量中文到英文的翻译 为了实现在 QML 中进行批量中文到英文的翻译,可以采用多种方式来处理国际化 (i18n) 和本地化 (l10n),这通常涉及到使用 `qsTr` 函数以及 `.qm` 文件来进行字符串资源管理。 对于 Qt 版本高于等于 5.10 的情况,在应用程序中可以直接利用 `retranslateUi()` 接口实现界面语言的即时更新而无需重启应用[^2]。这意味着可以在不关闭程序的情况下完成从一种语言到另一种语言的整体转换工作。 下面是一个简单的例子展示如何设置一个多语言支持的应用环境: #### 步骤一:准备翻译文件 创建两个 .ts 文件用于保存不同语言的文字对应关系,比如 `zh_CN.ts` 和 `en_US.ts`,并通过 lupdate 工具提取源码中的待翻译字符串并将其加入相应的 ts 文件内。 #### 步骤二:编译 TS 文件成 QM 文件 使用 lrelease 将上述提到的 .ts 文件转化为机器可读取的 .qm 文件形式。 #### 步骤三:加载 QM 文件至项目 通过 C++ 或者纯 QML 方式引入这些 qm 文件作为翻译器的一部分。这里给出一段基于 QML 的代码片段示范怎样动态改变当前使用的语言包: ```qml import QtQuick 2.15 import Qt.labs.settings 1.0 ApplicationWindow { id: root visible: true width: 640; height: 480 property string currentLang : "zh" Settings { id: settings property alias langCode: currentLang } function changeLanguage(lang){ var component = Qt.createComponent("Translator.qml"); if(component.status === Component.Ready){ var translatorObject = component.createObject(root, {"language":lang}); engine.installTranslator(translatorObject); retranslate(); } } // 假设有一个按钮触发此操作 Button{ onClicked:changeLanguage(currentLang==="zh"?"en":"zh") } } ``` 在这个案例里,“Translator.qml”应该定义了一个能够根据传入参数选择合适.qm文件的对象,并且实现了安装新的翻译器逻辑;同时还需要注意调用全局范围内的 `retranslate()` 来刷新所有依赖于翻译系统的组件显示内容。 另外需要注意的是,如果要确保整个 UI 能够正确响应这种变化,则必须保证每一个需要被翻译的地方都采用了合适的机制(如 ` qsTr()`) 进行包裹。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Taiga_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值