你如何注册相互依赖的Qt QML Singleton?

jdg*_*jdg 2 c++ qt qml

我正在使用一些C++和一些JavaScript/QML构建一个Qt应用程序.

我有三个全局单例,A,B和C,我想在QML引擎中注册.我可以使用这种方法独立注册每个对象.

A,B和C需要访问传递给单例提供程序的QMLEngine.

现在假设B和C依赖于A; 特别是,A的全局实例需要传递给B和C的构造函数.如何实例化和注册这些类型?

dte*_*ech 6

作为一个非常糟糕的人,我强烈建议不要去那里,尽管你还可以回头.

Qt有一个相互引用单例的错误,遗憾的是它只是部分解决了,看起来不会很快得到解决.

该错误导致QML引擎偶尔加载(10-20%的时间)无声地失败,没有错误,没有警告,没有应用程序窗口......没有任何东西.只是一个陷入困境的过程.

如果可能,将A,B和C实现为一个单例的子对象.然后,您仍然可以将它们作为单例的属性单独公开.