我在C ++中定义和注册QML单例并使用QML中的单例时没有任何问题。但是,现在我想从C ++调用该单例的方法。如何访问单例具有的单个实例?
现在我做了以下黑客攻击:
FileIO* fileIO;
static QObject* fileIOSingletonTypeProvider(QQmlEngine *engine, QJSEngine *scriptEngine) {
Q_UNUSED(engine)
Q_UNUSED(scriptEngine)
FileIO* instantiatedObj = new FileIO();
::fileIO = instantiatedObj;
return instantiatedObj;
}
// ...
qmlRegisterSingletonType<FileIO>("FileIO", 1, 0, "FileIO", fileIOSingletonTypeProvider);
所以我在实例化时存储了一个全局指针。
这很有效。有没有正确的方法呢?