stigmt
@stigmt
Учусь

Как прокинуть этот singleton С++ класс в QML?

Есть с++ класс синглтон.
Необходимо прокинуть его в 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();
}

лог компилятора:
667610ffaea44cc79db935749fd0648e.png
  • Вопрос задан
  • 831 просмотр
Решения вопроса 1
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы