<HTML><HEAD>
<STYLE id=eMClientCss>blockquote.cite { margin-left: 5px; margin-right: 0px; padding-left: 10px; padding-right:0px; border-left: 1px solid #cccccc }
blockquote.cite2 {margin-left: 5px; margin-right: 0px; padding-left: 10px; padding-right:0px; border-left: 1px solid #cccccc; margin-top: 3px; padding-top: 0px; }
.plain pre, .plain tt { font-family: monospace; font-size: 100%; font-weight: normal; font-style: normal; white-space: pre-wrap; }
a img { border: 0px; }body {font-family: Tahoma;font-size: 12pt;}
.plain pre, .plain tt {font-family: Tahoma;font-size: 12pt;}
</STYLE>

<STYLE></STYLE>
</HEAD>
<BODY scroll=auto class>
<DIV>for properties system you should use Q_PROPERTY macro inside your class.</DIV>
<DIV> </DIV>
<DIV>------ Исходное сообщение ------</DIV>
<DIV>От: "Antonio Mancini" <<A href="mailto:ziobilly94@gmail.com">ziobilly94@gmail.com</A>></DIV>
<DIV>Кому: "Sailfish OS Developers" <<A href="mailto:devel@lists.sailfishos.org">devel@lists.sailfishos.org</A>></DIV>
<DIV>Отправлено: 13.08.2015 18:14:29</DIV>
<DIV>Тема: [SailfishDevel] Accessing C++ properties from QML</DIV>
<DIV> </DIV>
<DIV id=x8e1d8f93c86d43a3bbc6840cc230c274>
<BLOCKQUOTE class=cite2 cite=CAAX4RD6OwckH_-ZDqEny_LU3cuCaDd21SqJL0OKYaHpOfQhC=Q@mail.gmail.com type="cite">
<DIV dir=ltr>
<DIV>Hi all, i need to access a property of a C++ Class, declared inside another class, from QML.<BR><BR></DIV>This is the principal class:<BR>
<DIV><BR>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex">#ifndef MANAGER_H<BR>#define MANAGER_H<BR><BR>#include <QObject><BR>#include <QTextStream><BR>#include <QFile><BR>#include "monster.h"<BR>#include "move.h"<BR>#include "turnmanager.h"<BR><BR><BR>class Manager : public QObject<BR>{<BR>    Q_OBJECT<BR><BR>public:<BR>    explicit Manager(QObject *parent = 0);<BR><BR>    int activeId;<BR>    QString activeString;<BR><BR>    int enemyId;<BR><BR>    Monster active;<BR>    Monster enemy;<BR>    <BR>    Move activeMove;<BR>    Move enemyMove;<BR><BR>    Q_INVOKABLE void saveActive();<BR>    Q_INVOKABLE void fetchMonster( const int &level );<BR>    Q_INVOKABLE void assignMoves(Monster &monster );<BR>    Q_INVOKABLE void setMove( Move &move, const int &id );<BR><BR>signals:<BR><BR>    void fetchMonsterDone();<BR><BR>public slots:<BR><BR>};<BR><BR>#endif // MANAGER_H<BR></BLOCKQUOTE><BR></DIV>
<DIV>this is the Monster Class:<BR></DIV>
<DIV><BR>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex">#ifndef MONSTER_H<BR>#define MONSTER_H<BR><BR>#include <QObject><BR>#include <QString><BR>#include <math.h><BR>#include "move.h"<BR><BR><BR>class Monster : public QObject<BR>{<BR>    Q_OBJECT<BR><BR>public:<BR><BR>    explicit Monster(QObject *parent = 0);<BR><BR>    ...<BR><BR>    QString name;<BR><BR>    ...<BR>};<BR><BR>#endif // MONSTER_H<BR></BLOCKQUOTE><BR></DIV>
<DIV>in my qml page i include the class properly and i have something like this:<BR><BR>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex">Page {<BR></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex">
<DIV>    id: page</DIV></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex">
<DIV>    Manager {</DIV></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex">
<DIV>        id: manager</DIV></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex">
<DIV>        onFetchMonsterDone: {</DIV></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex">
<DIV>             console.log("Fetch done")<BR>        }<BR></DIV></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex">
<DIV>    }</DIV></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex">
<DIV>    Label {</DIV></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex">
<DIV>        id: label</DIV></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex">
<DIV>    }</DIV></BLOCKQUOTE>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex">
<DIV>} <BR></DIV></BLOCKQUOTE></DIV>
<DIV><BR></DIV>
<DIV>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 <A href="http://manager.active.name/">manager.active.name</A><BR><BR></DIV>
<DIV>OR<BR><BR></DIV>
<DIV>i read there are some ways to access end edit QML properties from C++<BR><BR></DIV>
<DIV>Can someone help me? <BR></DIV></DIV></BLOCKQUOTE></DIV></BODY></HTML>