<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>