Thanks, actually i had already seen that but couldn't accomplish much, now i tried again and i managed to access and edit qml properties, but the QML object doesn't update.
i use this code in a c++ method QQmlEngine engine; > QQmlComponent component (&engine, > "/usr/share/harbour-pocketmonsters/qml/pages/FirstPage.qml"); > QObject *object = component.create(); > QObject *label = object->findChild<QObject*>("label"); > > cout << label->property("text").toString(); > > if (label) > label->setProperty("text", active.name); > > cout << label->property("text").toString(); > the output of cout is correct, but the label doesn't update The console shows these errors, but i think they are irrelevant since the output is correct [W] unknown:108 - file:///usr/lib/qt5/qml/Sailfish/Silica/Page.qml:108: > ReferenceError: __silica_applicationwindow_instance is not defined > > [W] unknown:94 - file:///usr/lib/qt5/qml/Sailfish/Silica/Page.qml:94: > ReferenceError: __silica_applicationwindow_instance is not defined > > [W] unknown:178 - file:///usr/lib/qt5/qml/Sailfish/Silica/Page.qml:178: > ReferenceError: __silica_applicationwindow_instance is not defined > > [W] unknown:331 - > file:///usr/lib/qt5/qml/Sailfish/Silica/private/PulleyMenuBase.qml:331: > ReferenceError: __silica_applicationwindow_instance is not defined > 2015-08-13 15:17 GMT+02:00 Andrea Bernabei <and.berna...@gmail.com>: > Hi, > > try having a look at this > http://doc.qt.io/qt-5/qtqml-cppintegration-interactqmlfromcpp.html > > 2015-08-13 14:14 GMT+01:00 Antonio Mancini <ziobill...@gmail.com>: > >> Hi all, i need to access a property of a C++ Class, declared inside >> another class, from QML. >> >> This is the principal class: >> >> #ifndef MANAGER_H >>> #define MANAGER_H >>> >>> #include <QObject> >>> #include <QTextStream> >>> #include <QFile> >>> #include "monster.h" >>> #include "move.h" >>> #include "turnmanager.h" >>> >>> >>> class Manager : public QObject >>> { >>> Q_OBJECT >>> >>> public: >>> explicit Manager(QObject *parent = 0); >>> >>> int activeId; >>> QString activeString; >>> >>> int enemyId; >>> >>> Monster active; >>> Monster enemy; >>> >>> Move activeMove; >>> Move enemyMove; >>> >>> Q_INVOKABLE void saveActive(); >>> Q_INVOKABLE void fetchMonster( const int &level ); >>> Q_INVOKABLE void assignMoves(Monster &monster ); >>> Q_INVOKABLE void setMove( Move &move, const int &id ); >>> >>> signals: >>> >>> void fetchMonsterDone(); >>> >>> public slots: >>> >>> }; >>> >>> #endif // MANAGER_H >>> >> >> this is the Monster Class: >> >> #ifndef MONSTER_H >>> #define MONSTER_H >>> >>> #include <QObject> >>> #include <QString> >>> #include <math.h> >>> #include "move.h" >>> >>> >>> class Monster : public QObject >>> { >>> Q_OBJECT >>> >>> public: >>> >>> explicit Monster(QObject *parent = 0); >>> >>> ... >>> >>> QString name; >>> >>> ... >>> }; >>> >>> #endif // MONSTER_H >>> >> >> in my qml page i include the class properly and i have something like >> this: >> >> Page { >>> >> id: page >>> >> Manager { >>> >> id: manager >>> >> onFetchMonsterDone: { >>> >> console.log("Fetch done") >>> } >>> >> } >>> >> Label { >>> >> id: label >>> >> } >>> >> } >>> >> >> after doing some operations with fetchMonster(), the "active" class has >> been assigned some values to its properties, i need to access these values >> from QML in the "onFetchMonsterDone", let's say i need to assign to >> label.text the value of manager.active.name >> >> OR >> >> i read there are some ways to access end edit QML properties from C++ >> >> Can someone help me? >> >> _______________________________________________ >> SailfishOS.org Devel mailing list >> To unsubscribe, please send a mail to >> devel-unsubscr...@lists.sailfishos.org >> > > > _______________________________________________ > SailfishOS.org Devel mailing list > To unsubscribe, please send a mail to > devel-unsubscr...@lists.sailfishos.org >
_______________________________________________ SailfishOS.org Devel mailing list To unsubscribe, please send a mail to devel-unsubscr...@lists.sailfishos.org