Qt:我在C ++中定义并注册了一个QML单例。如何从C ++访问这个单例?

时间:2016-12-29 17:46:39

标签: c++ qt singleton qml

我在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);

所以我在实例化时存储了一个全局指针。

这很有效。有没有正确的方法呢?

0 个答案:

没有答案