首页 > 解决方案 > 我错过了什么,还是“qmlRegisterSingletonInstance”有错误?

问题描述

当我们使用新的“qmlRegisterSingletonInstance”函数创建一个单例实例时,我们收到一条明显错误的错误消息。我们在 main.cpp 中创建这样的实例:

QScopedPointer<OSClog> OSClog(new class OSClog);
qmlRegisterSingletonInstance("Louma.osclog", 1, 0, "OSClog", OSClog.get() );

但是在我们的 QML 文件中,我们在导入时收到此错误消息,声称找不到模块: 在此处输入图像描述

但是可以找到,程序编译运行正常。

如果我们使用不同的函数来创建该类型,错误消息就会消失。改用此代码不会报告错误:

qmlRegisterType<OSClog>("Louma.osclog", 1, 0, "OSClog" );

虽然我们现在需要在 main.qml 中创建组件的实例。

几个月来,我们一直在忍受错误消息,因为直到现在这只是一个小麻烦。我们刚刚发现 Qt-Designer 拒绝加载任何包含该 import 语句的对象。

在此处输入图像描述

当然,这个错误也是假的,因为 QML_IMPORT_PATH 是正确的。如果我们将代码从“qmlRegisterSingletonInstance”更改为任何其他注册函数,Qt-Designer 就可以正常工作。

那么,我们对“qmlRegisterSingletonInstance”做错了吗?或者这是一个错误?

谢谢。

标签: qtqml

解决方案


您似乎正在实例化并正确使用它。正如你所说,它构建和运行都很好,所以它显然是 Qt Creator IDE 中的一个错误。

是的,您可以从 Qt 错误跟踪器中找到未解决的创建者错误添加对 qmlRegisterSingletonInstance 的支持。Qt Creator也未检测到 qmlRegisterSingletonInstance已复制到前一个。


推荐阅读