setContextProperty "TypeError: Cannot call method"
-
Code1
DataManager* pDataManager = new DataManager; engine.rootContext()->setContextProperty("dataManager", pDataManager);
Code2
DataManager dataManager; engine.rootContext()->setContextProperty("dataManager", &dataManager);
DataManager has a method posNum()
When I run the qml project, Code1 works good,Code2 shows an error "TypeError: Cannot call method 'posNum' of null".
I don't know the difference between Code1 and Code2. -
Hi,
What are the lifetime of these objects ?
-
@SGaist simple code in main.cpp
int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QQuickStyle::setStyle("Basic"); QQmlApplicationEngine engine; QObject::connect( &engine, &QQmlApplicationEngine::objectCreationFailed, &app, []() { QCoreApplication::exit(-1); }, Qt::QueuedConnection); DataManager dataManager; engine.rootContext()->setContextProperty("dataManager", &dataManager); //DataManager* pDataManager = new DataManager; //engine.rootContext()->setContextProperty("dataManager", pDataManager); engine.loadFromModule("Project", "Main"); return app.exec(); }