Есть с++ класс синглтон.
Необходимо прокинуть его в QML.
Обычный, не синглтон класс, не вызывает проблем.
onlyone.h
#ifndef ONLYONE_H
#define ONLYONE_H
#include <QObject>
class OnlyOne : public QObject
{
Q_OBJECT
public:
static const OnlyOne& Instance()
{
static OnlyOne theSingleInstance;
return theSingleInstance;
}
private:
OnlyOne() {}
OnlyOne(const OnlyOne& root);
OnlyOne& operator=(const OnlyOne&);
};
#endif // ONLYONE_H
main.cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <onlyone.h>
#include <QDesktopServices>
#include <QtWidgets/QWidget>
#include <QQmlEngine>
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
auto& s=OnlyOne::Instance();
qmlRegisterType<OnlyOne>("singleton", 1, 0, "MyTreeModel" );
QQmlApplicationEngine engine;
engine.load(QUrl(QLatin1String("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
return app.exec();
}
лог компилятора: